यहां हम किसी दिए गए स्ट्रिंग के अल्फ़ान्यूमेरिक संक्षिप्त नाम से संबंधित एक दिलचस्प समस्या देखेंगे। स्ट्रिंग की लंबाई 10 से कम है। हम सभी अक्षरांकीय संक्षिप्ताक्षरों को प्रिंट करेंगे।
अल्फ़ान्यूमेरिक संक्षिप्त नाम अंकों के साथ मिश्रित वर्णों के रूप में होता है। उस अंक का मान छूटे हुए वर्णों की संख्या है। छोड़े गए सबस्ट्रिंग की कोई भी संख्या हो सकती है। कोई भी दो सबस्ट्रिंग एक दूसरे से सटे नहीं हैं। आइए विचार प्राप्त करने के लिए एल्गोरिथम देखें।
एल्गोरिदम
प्रिंटसंक्षिप्त (एस, इंडेक्स, मैक्स, स्ट्र) -
शुरू करें यदि अनुक्रमणिका अधिकतम के समान है, तो str अंत प्रिंट करें यदि str के अंतिम में s [index] जोड़ें संक्षिप्त रूप (s, अनुक्रमणिका + 1, अधिकतम, str) str गिनती से अंतिम वर्ण हटाएं:=1 यदि str है खाली नहीं है, तो यदि स्ट्र का अंतिम वर्ण एक अंक है, तो अंतिम अंक को काउंट वैल्यू के साथ जोड़ें, अंतिम वर्ण को स्ट्र एंड से हटा दें यदि अंत है तो स्ट्र प्रिंट के बाद काउंट जोड़ें। /पूर्व>उदाहरण
#includeनेमस्पेस std का उपयोग करके;void प्रिंटसंक्षिप्त (const string&s, int index, int max_index, string str) {if (index ==max_index) {//if string ने cout समाप्त कर दिया है < आउटपुट
HELLOHELL1HEL1OHEL2HE1LOHE1L1HE2OHE3H1LLOH1LL1H1L1OH1L2H2LOH2L1H3OH41ELLO1ELL11EL1O1EL21E1LO1E1L11E2O1E32LLO2LL12L1O2L23LO3L14O5