Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> 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

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

  • बाहर:=एक नई सूची
  • अस्थायी:=एक नई सूची
  • char_map :=एक नया नक्शा
  • सूचकांक:=0
  • इनपी में प्रत्येक अंक के लिए, करें
    • यदि अंक char_map में नहीं है, तो
      • char_map[अंक] :=अनुक्रमणिका
    • अस्थायी सूची साफ़ करें
    • मैं के लिए 0 से तालिका के आकार के लिए [अंक -1], करते हैं
      • यदि अनुक्रमणिका 0 के समान है, तो
        • s:=तालिका[अंक -1, i]
        • आउट के अंत में s डालें
      • यदि अनुक्रमणिका> 0 है, तो
        • प्रत्येक स्ट्रिंग के लिए बाहर, करें
          • s:=तालिका[अंक -1, i]
            • अगर char_map[digit] इंडेक्स के समान नहीं है, तो
              • s :=string[char_map[digit]]
            • स्ट्रिंग :=स्ट्रिंग कॉन्टेनेट एस
            • अस्थायी के अंत में स्ट्रिंग डालें
        • अगर char_map[digit] इंडेक्स के समान नहीं है, तो
          • ब्रेक
      • यदि अनुक्रमणिका> 0 , तो
        • बाहर:=अस्थायी की एक प्रति
      • सूचकांक :=अनुक्रमणिका + 1
    • वापसी

उदाहरण

आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -

def findCombinations(inp, table):
   out = list()
   temp = list()
   char_map = dict()
   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 = findCombinations(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. दो स्ट्रिंग्स से असामान्य शब्द खोजने के लिए पायथन प्रोग्राम

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें दो तार दिए गए हैं, हमें दिए गए तार से असामान्य शब्द निकालने होंगे। आइए अब नीचे दिए गए कार्यान्वयन में समाधान देखें - उदाहरण # uncommon words def find(A, B):    # count    count = {}   &n

  1. पायथन का उपयोग करके एक स्ट्रिंग से सभी डुप्लिकेट वर्ण खोजें

    एक तार दिया गया है। हमारा काम उन वर्णों को खोजना है जिनकी आवृत्ति दी गई स्ट्रिंग में एक से अधिक है। एक उदाहरण के रूप में, हम देख सकते हैं कि स्ट्रिंग हैलो वर्ल्ड। आइए पायथन सीखें ”इसलिए एल्गोरिथम उन अक्षरों को ढूंढेगा जो कई बार आ रहे हैं। इस मामले में, आउटपुट इस तरह दिखेगा - e : 3 l : 4 o , 3) <

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

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