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

Python - संख्या के अंकों से मैप्ड कैरेक्टर्स से बने सभी स्ट्रिंग्स ढूंढना

मान लीजिए हमारे पास निम्नलिखित कैरेक्टर मैपिंग है, जहां 1 से 9 तक प्रत्येक अंक कुछ कैरेक्टर्स से मैप होता है।

1 -> ['A', 'B', 'C']
2 -> ['D', 'E', 'F']
3 -> ['G', 'H', 'I']
4 -> ['J', 'K', 'L']
5 -> ['M', 'N', 'O']
6 -> ['P', 'Q', 'R']
7 -> ['S', 'T', 'U']
8 -> ['V', 'W', 'X']
9 -> ['Y', 'Z']

यदि हमारे पास एक संख्या है, तो हमें उसके अंकों को दी गई मैपिंग लिस्ट में संबंधित कैरेक्टर्स से बदलना है और सभी जनरेटेड स्ट्रिंग्स दिखानी हैं। हमें संख्या में एक अंक के हर ऑकरेंस के लिए समान कैरेक्टर पर विचार करना चाहिए। दी गई संख्या में 0 नहीं होगा।

तो, यदि इनपुट [4, 3, 5] जैसा है, तो आउटपुट होगा:

JGM KGM LGM JHM KHM LHM JIM KIM LIM JGN KGN LGN JHN KHN LHN JIN KIN LIN JGO KGO LGO JHO KHO LHO JIO KIO LIO

इसे हल करने के लिए, हम इन चरणों का पालन करेंगे:

  • out := एक नई लिस्ट
  • temp := एक नई लिस्ट
  • char_map := एक नया मैप
  • index := 0
  • inp में प्रत्येक digit के लिए, करें
    • यदि digit, char_map में नहीं है, तो
      • char_map[digit] := index
    • temp लिस्ट को क्लियर करें
    • i को 0 से table[digit - 1] के आकार तक रेंज में, करें
      • यदि index, 0 के समान है, तो
        • s := table[digit - 1, i]
        • out के अंत में s इन्सर्ट करें
      • यदि index > 0 है, तो
        • out में प्रत्येक string के लिए, करें
          • s := table[digit - 1, i]
            • यदि char_map[digit], index के समान नहीं है, तो
              • s := string[char_map[digit]]
            • string := string कन्कैट s
            • temp के अंत में string इन्सर्ट करें
        • यदि char_map[digit], index के समान नहीं है, तो
          • ब्रेक करें
      • यदि index > 0, तो
        • out := temp की कॉपी
      • index := index + 1
    • out लौटाएं

    उदाहरण

    बेहतर समझ के लिए निम्नलिखित इम्प्लीमेंटेशन देखें:

    def find_combinations(inp, table):
        out = []
        temp = []
        char_map = {}
        index = 0
        for digit in inp:
            if digit not in char_map:
                char_map[digit] = index
            temp.clear()
            for i in range(len(table[digit - 1])):
                if index == 0:
                    s = table[digit - 1][i]
                    out.append(s)
                if index > 0:
                    for string in out:
                        s = table[digit - 1][i]
                        if char_map[digit] != index:
                            s = string[char_map[digit]]
                        string = string + s
                        temp.append(string)
                if char_map[digit] != index:
                    break
            if index > 0:
                out = temp.copy()
            index += 1
        return out
    
    mapping = [
        ['A', 'B', 'C'],
        ['D', 'E', 'F'],
        ['G', 'H', 'I'],
        ['J', 'K', 'L'],
        ['M', 'N', 'O'],
        ['P', 'Q', 'R'],
        ['S', 'T', 'U'],
        ['V', 'W', 'X'],
        ['Y', 'Z']
    ]
    inp = [4, 3, 5]
    res = find_combinations(inp, mapping)
    for it in res:
        print(it, end=" ")

    इनपुट

    [4, 3, 5]

    आउटपुट

    JGM KGM LGM JHM KHM LHM JIM KIM LIM JGN KGN LGN JHN KHN LHN JIN KIN LIN JGO KGO LGO JHO KHO LHO JIO KIO LIO
  1. पायथन प्रोग्राम: दो स्ट्रिंग्स से असामान्य शब्द खोजें पायथन प्रोग्राम: दो स्ट्रिंग्स से असामान्य शब्द खोजें

    इस लेख में हम दी गई समस्या के समाधान के बारे में जानेंगे। समस्या कथन हमें दो स्ट्रिंग्स दी गई हैं, हमें दी गई स्ट्रिंग्स से असामान्य शब्द प्राप्त करने हैं। उदाहरण # असामान्य शब्द def find(A, B): # काउंट count = {} # A में डालें for word in A.split(): count[word] = count.get(w

  1. - पायथन का उपयोग करके स्ट्रिंग से सभी डुप्लिकेट कैरेक्टर्स ढूंढना

    एक स्ट्रिंग दी गई है। हमारा कार्य उन कैरेक्टर्स को ढूंढना है जिनकी फ्रीक्वेंसी दी गई स्ट्रिंग में एक से अधिक है।उदाहरण के लिए, हम देख सकते हैं कि स्ट्रिंग Hello World. Lets learn Python है तो एल्गोरिदम उन अक्षरों को ढूंढेगा जो कई बार आ रहे हैं। इस मामले में, आउटपुट इस तरह दिखेगा:e: 3 l: 4 o: 3 (spac

  1. - पायथन में स्ट्रिंग से अंकों को छोड़कर सभी वर्ण कैसे हटाएं

    हमारे पास इसे प्राप्त करने के कई तरीके हैं। हम for ... if स्टेटमेंट का उपयोग करके नॉन-डिजिट वर्णों को फ़िल्टर कर सकते हैं। उदाहरण के लिए: >>> s = H3ll0 P30P13 >>> .join(i for i in s if i.isdigit()) 303013 हम फ़िल्टर और लैम्ब्डा फ़ंक्शन का उपयोग करके वर्णों को फ़िल्टर कर सकते हैं। उ