इस समस्या में, हमें एक नंबर दिया जाता है और हमें उन सभी शब्दों को प्रिंट करना होता है जो पुराने जमाने के मोबाइल कीबोर्ड में उन शब्दों को दबाने से बनते हैं।
आज हम जिस QWERTY कीबोर्ड शैली का उपयोग करते हैं, उससे हम काफी परिचित हैं। लेकिन QWERTY कीपैड के आविष्कार से पहले फोन में 12 बटन वाले कीपैड लगे होते थे और प्रत्येक बटन में शब्द और संख्या दोनों होते हैं। जैसे वे कीपैड पर शब्द 6 में “MNO” शब्द होंगे जो एक, दो बार या तीन बार कुंजियों पर क्लिक करके टाइप किया जाएगा।
कीपैड इस तरह दिखता था -
1 | 2 एबीसी | 3 डीईएफ़ |
4 जीएचआई | 5 जेकेएल | 6 एमएनओ |
7 पीक्यूआरएस | 8 टीयूवी | 9 डब्ल्यू एक्स वाई जेड |
* | 0 | # |
इन कीवर्ड में भी सभी शब्द मौजूद होते हैं और उपयोगकर्ता तब टाइप कर सकता है। इसलिए, इस समस्या में, हम दिए गए संख्या अनुक्रम का उपयोग करके उत्पन्न किए जा सकने वाले सभी संभावित शब्दों को प्रिंट करेंगे।
आइए समस्या को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -
इनपुट:687आउटपुट:एमटीपी, एमटीक्यू, एमटीआर, एमटीआर, एमयूपी, एमयूक्यू, एमयूआर, एमयूएस, एमवीपी, एमवीक्यू, एमवीआर, एमवीआर, एनटीपी, एनटीक्यू, एनटीआर, एनटीआर, एनयूपी, एनयूक्यू, एनयूआर, एनयूएस, एनवीपी, एनवीक्यू ,एनवीआर, एनवीआर, ओटीपी, ओटीक्यू, ओटीआर, ओटीआर, ओयूपी, ओयूक्यू, हमारा, ओयूएस, ओवीपी, ओवीक्यू, ओवीआर, ओवीआर।
इस समस्या को हल करने के लिए, आइए उपरोक्त उदाहरण में बने पैटर्न को देखें। प्रत्येक बटन के अपने संबद्ध वर्ण होते हैं और टाइप करते समय हमें उनका उपयोग करना होगा। तो, प्रत्येक संख्या के लिए, अधिकतम 4 विकल्प हैं (7 और 9 के मामले में)। इसके लिए हम डिजिट पर फिक्स कर सकते हैं और फिर डिजिट और गढ़े गए शब्दों का उपयोग कर सकते हैं। यह रिकर्सन का उपयोग करके किया जा सकता है।
आइए हम पुनरावर्तन का उपयोग करके अवधारणा को लागू करने के लिए कार्यक्रम करते हैं।
उदाहरण
#include#include नेमस्पेस एसटीडी का उपयोग करना;कॉन्स्ट चार कीपैड[10][5] ={"", "", "abc", "def", "ghi", "jkl ", "mno", "pqrs", "tuv", "wxyz"}; void printWords(int number[], int curr_digit, char output[], int n){ int i; अगर (curr_digit ==n){ cout<<आउटपुट<<" "; वापसी; } के लिए (i=0; i आउटपुट
गठित आउटपुट कैरेक्टर है -
mtp mtq mtr mts muq muq mur mus mvp mvq mvr mvs ntp ntq ntr ntsnup nuq nur nus nvp nvq nvr nvs otp otq ots oup ouq ous ous ovs