অ্যানাগ্রাম

অ্যানাগ্রাম

মধ্যম

ভূমিকা

একটি গ্যারেজ সেলে আপনি সস্তায় একটি চমৎকার ভিন্টেজ টাইপরাইটার পেয়ে যান! উত্তেজিত হয়ে আপনি বাড়ি ছুটে যান, একটি কাগজ ঢোকান, আর টাইপ করা শুরু করেন। তবে আউটপুট দেখে আপনার উত্তেজনা কমে যায়: সব শব্দ এলোমেলো হয়ে গেছে! যেমন, এটি "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"।

ইনপুট/আউটপুট ফরম্যাট

প্রতিটি শব্দগুচ্ছ একটি নাল-টার্মিনেটেড স্ট্রিং হিসেবে উপস্থাপন করা হয়, যেখানে প্রতিটি শব্দের শেষে একটি নিউলাইন ক্যারেক্টার থাকে।

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

একটি উদাহরণ হলো "tones\nnotes\nSeton\n"

রেজিস্টার

রেজিস্টার ব্যবহার টাইপ বিবরণ
$a0 ইনপুট অ্যাড্রেস নাল-টার্মিনেটেড টার্গেট স্ট্রিং, নিউলাইন ছাড়া
$a1 ইনপুট অ্যাড্রেস নাল-টার্মিনেটেড ক্যান্ডিডেট স্ট্রিং, প্রতিটি শব্দের পরে নিউলাইন থাকে
$a2 ইনপুট/আউটপুট অ্যাড্রেস নাল-টার্মিনেটেড আউটপুট স্ট্রিং, প্রতিটি শব্দের পরে নিউলাইন থাকে
$t0-9 সাময়িক যেকোনো সাময়িক সংরক্ষণের জন্য
GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
MIPS Assembly Exercism

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

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