Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

सी++ में फोन अंकों से सभी संभावित शब्दों को प्रिंट करें


इस समस्या में, हमें एक नंबर दिया जाता है और हमें उन सभी शब्दों को प्रिंट करना होता है जो पुराने जमाने के मोबाइल कीबोर्ड में उन शब्दों को दबाने से बनते हैं।

आज हम जिस 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 
  1. C++ में दिए गए नोड से k दूरी पर सभी नोड्स प्रिंट करें

    इस समस्या में, हमें एक बाइनरी ट्री, एक लक्ष्य नोड और एक पूर्णांक K दिया जाता है। हमें ट्री के सभी नोड्स को प्रिंट करना होता है जो लक्ष्य नोड से K की दूरी पर होते हैं। । बाइनरी ट्री एक विशेष पेड़ है जिसके प्रत्येक नोड में अधिकतम दो नोड (एक/दो/कोई नहीं) होते हैं। आइए समस्या को समझने के लिए एक उदाहरण

  1. C++ में लीफ नोड से k दूरी पर मौजूद सभी नोड्स को प्रिंट करें

    इस समस्या में, हमें एक बाइनरी ट्री और एक नंबर K दिया जाता है। हमें ट्री के सभी नोड्स को प्रिंट करना होता है जो लीफ नोड से k दूरी पर होते हैं। बाइनरी ट्री एक विशेष पेड़ है जिसके प्रत्येक नोड में अधिकतम दो नोड (एक/दो/कोई नहीं) होते हैं। लीफ नोड बाइनरी ट्री का नोड ट्री के अंत में होता है। इस समस्या

  1. किसी दिए गए स्रोत से गंतव्य तक सभी पथों को C++ में प्रिंट करें

    इस समस्या में हमें एक निर्देशित ग्राफ़ दिया जाता है और हमें स्रोत से ग्राफ़ के गंतव्य तक के सभी पथों को प्रिंट करना होता है। निर्देशित ग्राफ़ किनारों वाला एक ग्राफ़ है जो शीर्ष a से b तक निर्देशित होता है। समस्या को समझने के लिए एक उदाहरण लेते हैं स्रोत =के गंतव्य =पी आउटपुट: K -> T -&