ট্র্যাক
/
Pharo
Pharo
/
অনুশীলনী
/
অ্যানাগ্রাম
অ্যানাগ্রাম

অ্যানাগ্রাম

সহজ

ভূমিকা

একটি গ্যারেজ সেলে আপনি সস্তায় একটি চমৎকার ভিন্টেজ টাইপরাইটার পেয়ে যান! উত্তেজিত হয়ে আপনি বাড়ি ছুটে যান, একটি কাগজ ঢোকান, আর টাইপ করা শুরু করেন। তবে আউটপুট দেখে আপনার উত্তেজনা কমে যায়: সব শব্দ এলোমেলো হয়ে গেছে! যেমন, এটি "post"-এর বদলে "stop" আর "stale"-এর বদলে "least" প্রিন্ট করে। সাবধানে আপনি আবার চেষ্টা করেন, কিন্তু এবার এটি "spot" আর "slate" প্রিন্ট করে। কিছু পরীক্ষা-নিরীক্ষার পর আপনি বুঝতে পারেন, প্রতিটি অক্ষর প্রিন্ট হওয়ার আগে একটি র‍্যান্ডম বিলম্ব থাকে, যা ক্রম নষ্ট করে দেয়। এখন আপনি বুঝতে পারেন কেন তারা এটা এত কম দামে বিক্রি করেছিল!

আপনি বুঝতে পারেন, এই অদ্ভুত বৈশিষ্ট্যটি আপনাকে অ্যানাগ্রাম তৈরি করার সুযোগ দেয়, অর্থাৎ অ্যানাগ্রাম হলো এমন শব্দ যা অন্য একটি শব্দের অক্ষরগুলো পুনর্বিন্যাস করে তৈরি হয়। আপনার এই আবিষ্কারে খুশি হয়ে, দিনের বাকি অংশটি আপনি শত শত অ্যানাগ্রাম তৈরি করতে ব্যয় করেন।

নির্দেশনা

আপনার কাজ হলো, একটি লক্ষ্য শব্দ ও কিছু প্রার্থী শব্দ দেওয়া থাকলে, প্রার্থীদের মধ্যে থেকে লক্ষ্য শব্দটির অ্যানাগ্রামগুলো নিয়ে গঠিত উপসেটটি খুঁজে বের করা।

একটি অ্যানাগ্রাম হলো অক্ষরগুলো নতুন করে সাজিয়ে নতুন একটি শব্দ তৈরি করা: যেমন "owns" হলো "snow"-এর একটি অ্যানাগ্রাম। একটি শব্দ তার নিজের অ্যানাগ্রাম নয়: যেমন "stop" "stop"-এর অ্যানাগ্রাম নয়।

লক্ষ্য ও প্রার্থী হলো এমন শব্দ, যেগুলো এক বা একাধিক ASCII বর্ণমালার অক্ষর (A-Z এবং a-z) দিয়ে গঠিত। ছোট হাতের ও বড় হাতের অক্ষর সমতুল্য: যেমন "PoTS" হলো "sTOp"-এর একটি অ্যানাগ্রাম, কিন্তু StoP sTOp-এর অ্যানাগ্রাম নয়। অ্যানাগ্রাম সেট হলো প্রার্থী সেটের সেই উপসেট, যেগুলো লক্ষ্য শব্দের অ্যানাগ্রাম (যেকোনো ক্রমে)। অ্যানাগ্রাম সেটের শব্দগুলোতে অক্ষরের যে বড়-ছোট হাতের বিন্যাস প্রার্থী সেটে ছিল, সেটিই থাকা উচিত।

লক্ষ্য "stone" এবং প্রার্থী "stone", "tones", "banana", "tons", "notes", "Seton" হলে, অ্যানাগ্রাম সেট হলো "tones", "notes", "Seton"।

ইমপ্লিমেন্টেশন

প্রার্থী শব্দগুলি যে ক্রমে তালিকাভুক্ত করা আছে, আপনাকে অ্যানাগ্রামগুলি ঠিক সেই ক্রমেই রিটার্ন করতে হবে।

আইসোগ্রামের মতোই, সিস্টেমে ইতিমধ্যে কোন কোন ডেটা টাইপ আছে সেগুলি একবার দেখে নেওয়া ভালো। আর মনে রাখবেন, tests ধাপে ধাপে নিন এবং একটু একটু করে একটি সমাধান গড়ে তোলার চেষ্টা করুন। ডিবাগারও আপনার বন্ধু হতে পারে, আর মনে রাখবেন, যেকোনো এক্সপ্রেশন বা ভ্যারিয়েবল ইভ্যালুয়েট করা সম্ভব, যাতে এটি কীভাবে কাজ করে তা আরও ভালোভাবে ভিজুয়ালাইজ করা ও বোঝা যায়।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Pharo Exercism

অ্যানাগ্রাম শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Pharo ট্র্যাকের 50টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।