কম্পিউটার

পাইথনে একটি সংখ্যার অঙ্কে ম্যাপ করা অক্ষর থেকে গঠিত সমস্ত স্ট্রিং খুঁজুন


ধরুন আমাদের একটি অক্ষর ম্যাপিং নিম্নরূপ, এখানে প্রতিটি অঙ্ক, 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

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • আউট :=একটি নতুন তালিকা
  • temp :=একটি নতুন তালিকা
  • char_map :=একটি নতুন মানচিত্র
  • সূচক :=0
  • ইনপিতে প্রতিটি অঙ্কের জন্য, করুন
    • যদি অঙ্কটি char_map-এ না থাকে, তাহলে
      • char_map[digit] :=সূচক
    • অস্থায়ী তালিকা সাফ করুন
    • আমি 0 থেকে টেবিলের আকার [ডিজিট - 1] এর মধ্যে,
        করুন
      • যদি সূচক 0 এর মত হয়, তাহলে
        • s :=টেবিল[ডিজিট - 1, i]
        • আউটের শেষে s ঢোকান
      • যদি সূচক> 0 হয়, তাহলে
        • প্রতিটি স্ট্রিং ইন আউটের জন্য, করুন
          • s :=টেবিল[ডিজিট - 1, i]
            • যদি char_map[digit] সূচকের মতো না হয়, তাহলে
              • s :=স্ট্রিং[char_map[digit]]
            • string :=string concatenate s
            • টেম্পের শেষে স্ট্রিং ঢোকান
        • যদি 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. দুটি স্ট্রিং থেকে অস্বাভাবিক শব্দ খুঁজে পেতে পাইথন প্রোগ্রাম

  2. পাইথন প্রোগ্রাম একটি স্ট্রিং-এ সমস্ত সদৃশ অক্ষর খুঁজে পেতে

  3. পাইথন ব্যবহার করে একটি স্ট্রিং থেকে সমস্ত ডুপ্লিকেট অক্ষর খুঁজুন

  4. পাইথনে স্ট্রিং থেকে অঙ্কগুলি ছাড়া অক্ষরগুলি কীভাবে সরিয়ে ফেলা যায়?