Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C प्रोग्राम में स्ट्रिंग के अल्फान्यूमेरिक संक्षिप्तीकरण


समस्या विवरण

यहां हम दिए गए स्ट्रिंग के अल्फान्यूमेरिक संक्षिप्तीकरण से संबंधित एक दिलचस्प समस्या देखेंगे। स्ट्रिंग की लंबाई 10 से कम है। हम सभी अल्फान्यूमेरिक संक्षिप्तीकरण प्रिंट करेंगे।

अल्फान्यूमेरिक संक्षिप्तीकरण वर्णों और अंकों के मिश्रण के रूप में होता है। उस अंक का मान छोड़े गए वर्णों की संख्या है। कोई भी संख्या में छोड़े गए उपस्ट्रिंग हो सकते हैं। कोई भी दो उपस्ट्रिंग एक-दूसरे के आसन्न नहीं होते।

एल्गोरिदम

printAbbreviation(s, index, max, str)
शुरुआत
    यदि index, max के समान है, तो
        str प्रिंट करें
    अंत यदि
    s[index] को str के अंत में जोड़ें
    printAbbreviation(s, index + 1, max, str)
    str से अंतिम वर्ण हटाएं
    count := 1
    यदि str खाली नहीं है, तो
        यदि str का अंतिम वर्ण अंक है, तो
            अंतिम अंक को count मान के साथ जोड़ें
            str से अंतिम वर्ण हटाएं
        अंत यदि
    अंत यदि
    count को str के बाद जोड़ें
    printAbbreviation(s, index + 1, max, str)
अंत

C++ प्रोग्राम उदाहरण

#include <iostream>
using namespace std;

void printAbbreviation(const string& s, int index, int max_index, string str) {
    if (index == max_index) {
        cout << str << endl;
        return;
    }
    str.push_back(s[index]);
    printAbbreviation(s, index + 1, max_index, str);
    str.pop_back();
    int count = 1;
    if (!str.empty()) {
        if (isdigit(str.back())) {
            count += (int)(str.back() - '0');
            str.pop_back();
        }
    }
    char to_char = (char)(count + '0');
    str.push_back(to_char);
    printAbbreviation(s, index + 1, max_index, str);
}

void printCombination(string str) {
    if (!str.length())
        return;
    string str_res;
    printAbbreviation(str, 0, str.length(), str_res);
}

int main() {
    string str = "HELLO";
    printCombination(str);
}

आउटपुट

HELLO
HELL1
HEL1O
HEL2
HE1LO
HE1L1
HE2O
HE3
H1LLO
H1LL1
H1L1O
H1L2
H2LO
H2L1
H3O
H4
1ELLO
1ELL1
1EL1O
1EL2
1E1LO
1E1L1
1E2O
1E3
2LLO
2LL1
2L1O
2L2
3LO
3L1
4O
5
  1. - प्रोग्राम जांचने के लिए कि स्ट्रिंग अल्फान्यूमेरिक है या नहीं

    कोई भी शब्द जिसमें संख्याएं और अक्षर दोनों हों, अल्फान्यूमेरिक कहलाता है। निम्नलिखित रेगुलर एक्सप्रेशन संख्याओं और अक्षरों के संयोजन से मिलान करता है: ^[a-zA-Z0-9]+$; String क्लास का matches मेथड एक रेगुलर एक्सप्रेशन (स्ट्रिंग के रूप में) स्वीकार करता है और इसे वर्तमान स्ट्रिंग से मिलान करता है। यद

  1. - पायथन में दिए गए इंडेक्स का उपयोग करके स्ट्रिंग के वर्ण को बदलने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s, एक इंडेक्स i और एक वर्ण c है। हमें c का उपयोग करके s के ith वर्ण को बदलना है। अब पायथन में, स्ट्रिंग्स अपरिवर्तनीय प्रकृति की हैं। हम s[i] = c जैसा स्टेटमेंट नहीं लिख सकते, यह एक त्रुटि उठाएगा [TypeError: str object does not support item assignment]उदाहरण के लिए, य

  1. - पायथन प्रोग्राम - अल्फान्यूमेरिक वर्ण से समाप्त होने वाली स्ट्रिंग स्वीकार करें

    जब यह जांचना हो कि कोई स्ट्रिंग अल्फान्यूमेरिक वर्ण से समाप्त होती है या नहीं, तो नियमित अभिव्यक्ति का उपयोग किया जाता है। एक विधि परिभाषित की जाती है जो अल्फान्यूमेरिक वर्णों की जांच करती है, और स्ट्रिंग को आउटपुट के रूप में वापस करती है। उदाहरण नीचे इसका प्रदर्शन दिया गया है: import re regex_expr