কম্পিউটার টিউটোরিয়াল

পাইথনে সংখ্যার ডিজিট থেকে ক্যারেক্টার ম্যাপিং করে স্ট্রিং তৈরি করা

मान लीजिए हमारे पास निम्नलिखित कॅरेक्टर मैपिंग है, जहां 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 में प्रत्येक डिजिट के लिए:
    • यदि डिजिट char_map में नहीं है, तो char_map[digit] := index
    • temp सूची को साफ़ करें
    • i के लिए 0 से table[digit - 1] के आकार तक की रेंज में:
      • यदि index 0 के समान है, तो s := table[digit - 1, i], out के अंत में s डालें
      • यदि index > 0 है, तो out में प्रत्येक स्ट्रिंग के लिए...
  • out वापस करें

उदाहरण कोड

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. দুই স্ট্রিং থেকে অনকমন ওয়ার্ড বের করার পাইথন প্রোগ্রাম

  2. পাইথনে স্ট্রিং-এ ডুপ্লিকেট ক্যারেক্টার খুঁজে বের করার প্রোগ্রাম

  3. পাইথন ব্যবহার করে স্ট্রিং থেকে সকল ডুপ্লিকেট ক্যারেক্টার বের করা

  4. পাইথনে স্ট্রিং থেকে শুধু ডিজিট বাদে সব ক্যারেক্টার রিমুভ করা