এই সমস্যায়, আমাদের একটি নম্বর দেওয়া হয়েছে এবং আমাদের সেই সমস্ত শব্দগুলিকে প্রিন্ট করতে হবে যা সেই শব্দগুলিকে একটি পুরানো ফ্যাশনের মোবাইল কীবোর্ডে চেপে গঠন করা যেতে পারে৷
আমরা বর্তমানে যে QWERTY কীবোর্ড স্টাইল ব্যবহার করি তার সাথে আমরা বেশ পরিচিত। কিন্তু QWERTY কীপ্যাড আবিষ্কারের আগে ফোনে 12টি বোতাম সহ কীপ্যাড লাগানো ছিল এবং প্রতিটি বোতামে শব্দ এবং সংখ্যা উভয়ই থাকে। তাদের মতো কীপ্যাডের 6 শব্দটিতে "MNO" শব্দ থাকবে যা এক, দুইবার বা তিনবার কী ক্লিক করে টাইপ করা হবে।
কীপ্যাড দেখতে এইরকম ছিল -
1 | 2 এবিসি | 3 ডিইএফ |
4 জিএইচআই | 5 জেকেএল | 6 MNO |
7 পিকিউআরএস | 8 টিইউভি | 9 ইংরেজি বর্ণমালার শেষ চারটি বর্ণ |
* | 0 | # |
এই কীওয়ার্ডগুলিতেও সমস্ত শব্দ উপস্থিত থাকে এবং ব্যবহারকারী তখন টাইপ করতে পারে। সুতরাং, এই সমস্যাটিতে, আমরা প্রদত্ত সংখ্যা ক্রম ব্যবহার করে তৈরি করা যেতে পারে এমন সমস্ত সম্ভাব্য শব্দ প্রিন্ট করব।
সমস্যাটি আরও ভালভাবে বোঝার জন্য একটি উদাহরণ নেওয়া যাক −
ইনপুট:687আউটপুট:MTP, MTQ, MTR, MTR, MUP, MUQ, MUR, MUS, MVP, MVQ, MVR, MVR, NTP, NTQ, NTR, NTR, NUP, NUQ, NUR, NUS, NVP, NVQ ,NVR, NVR, OTP, OTQ, OTR, OTR, OUP, OUQ, OUR, OUS, OVP, OVQ, OVR, OVR।
এই সমস্যাটি সমাধান করার জন্য, উপরের উদাহরণে তৈরি প্যাটার্নটি দেখুন। প্রতিটি বোতামের নিজস্ব সংশ্লিষ্ট অক্ষর রয়েছে এবং টাইপ করার সময় আমাদের সেগুলি ব্যবহার করতে হবে। সুতরাং, প্রতিটি সংখ্যার জন্য, সর্বাধিক 4টি বিকল্প রয়েছে (7 এবং 9 এর ক্ষেত্রে)। এর জন্য, আমরা অঙ্কে ঠিক করতে পারি এবং তারপরে অঙ্ক এবং নকল শব্দ ব্যবহার করতে পারি। এটি পুনরাবৃত্তি ব্যবহার করে করা যেতে পারে।
আমরা রিকার্সন ব্যবহার করে কনসেপ্ট বাস্তবায়ন করার জন্য প্রোগ্রাম করি।
উদাহরণ
#include#include namespace ব্যবহার করে std;const char কীপ্যাড[10][5] ={"", "", "abc", "def", "ghi", "jkl" ", "mno","pqrs", "tuv", "wxyz"}; void printWords(int number[], int curr_digit, char output[], int n){ int i; if (curr_digit ==n){ cout<