কম্পিউটার

পাইথনে একটি ফোন নম্বরের অক্ষর সংমিশ্রণ


ধরুন আমাদের একটি স্ট্রিং আছে যেখানে 2-9 অন্তর্ভুক্ত সংখ্যা রয়েছে। সংখ্যাটি প্রতিনিধিত্ব করতে পারে এমন সমস্ত সম্ভাব্য অক্ষর সংমিশ্রণ আমাদের ফিরিয়ে দিতে হবে। অক্ষরে অঙ্কের একটি ম্যাপিং (ঠিক টেলিফোন বোতামের মতো) নীচে দেওয়া হয়েছে। মনে রাখবেন যে 1 কোন অক্ষর ম্যাপ করে না।

1 2
a খ গ
3
d e f
4
g h i
5
jkl
6
mn o
7
p q r s
8
t u v
9
ইংরেজি বর্ণমালার শেষ চারটি বর্ণ
*
0 #

উদাহরণস্বরূপ, যদি প্রদত্ত স্ট্রিংটি "23" হয়, তবে সম্ভাব্য স্ট্রিংগুলি হবে [“ad”, “ae”, “af”, “bd”, “be”, “bf”, “cd”, “ce” ”, “cf”]

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

  • সমস্যাকে পুনরাবৃত্তভাবে সমাধান করতে সল্ভ নামক একটি অ্যারেকে সংজ্ঞায়িত করুন
  • সমাধান পদ্ধতিতে সংখ্যা, অক্ষর, ফলাফল, বর্তমান_স্ট্রিং এবং বর্তমান_স্তর লাগে, ফাংশনটি এরকম হবে
  • যদি current_level =সংখ্যার দৈর্ঘ্য, তাহলে ফলাফলের পরে বর্তমান স্ট্রিং যোগ করুন এবং ফেরত দিন
  • সমস্ত অক্ষরের জন্য i অক্ষরে[সংখ্যা[কারেন্ট_লেভেল]]
    • সল্ভ করুন(অঙ্ক, অক্ষর, ফলাফল, বর্তমান_স্ট্রিং + i, বর্তমান_স্তর + 1)
  • প্রকৃত ফাংশনটি এরকম হবে
  • যদি সংখ্যার দৈর্ঘ্য 0 হয়, তাহলে একটি খালি তালিকা ফেরত দিন
  • সংখ্যা এবং সংশ্লিষ্ট অক্ষরগুলিকে স্ট্রিং হিসাবে ধরে রাখতে একটি মানচিত্র সংজ্ঞায়িত করুন
  • ফলাফল :=একটি খালি তালিকা
  • কল সমাধান (অঙ্ক, অক্ষর, ফলাফল, “”, 0)

উদাহরণ(পাইথন)

আরো ভালোভাবে বোঝার জন্য নিচের বাস্তবায়নটি দেখি -

class Solution(object):
   def letterCombinations(self, digits):
      if len(digits) == 0:
         return []
      characters = {2:"abc",3:"def",4:"ghi",5:"jkl",6:"mno",7:"pqrs",8:"tuv",9:"wxyz"}
      result = []
      self.solve(digits,characters,result)
      return result
   def solve(self, digits, characters, result, current_string="",current_level = 0):
      if current_level == len(digits):
         result.append(current_string)
         return
      for i in characters[int(digits[current_level])]:
         self.solve(digits,characters,result,current_string+i,current_level+1)
ob1 = Solution()
print(ob1.letterCombinations("37"))

ইনপুট

"37"

আউটপুট

["dp","dq","dr","ds","ep","eq","er","es","fp","fq","fr","fs"]

  1. পাইথনে প্যালিনড্রোম নম্বর

  2. একটি সংখ্যার সমস্ত সংখ্যা এটিকে ভাগ করে কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম

  3. পাইথনে ফ্যাক্টোরিয়াল()

  4. পাইথন রেগুলার এক্সপ্রেশন কিভাবে লিখতে হয় একটি সংখ্যার পুনরাবৃত্ত সংখ্যা খুঁজে বের করে?