কম্পিউটার

পাইথনে ফোন কীপ্যাড ব্যবহার করে টাইপ করা সমস্ত সম্ভাব্য স্ট্রিং খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের একটি স্ট্রিং আছে যেখানে 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
#

উদাহরণস্বরূপ, যদি প্রদত্ত স্ট্রিংটি "49" হয়, তাহলে সম্ভাব্য স্ট্রিংগুলি হবে ['gw', 'gx', 'gy', 'gz', 'hw', 'hx', 'hy', 'hz ', 'iw', 'ix', 'iy', 'iz']

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

  • সমস্যাকে পুনরাবৃত্তভাবে সমাধান করতে সল্ভ নামক একটি অ্যারেকে সংজ্ঞায়িত করুন
  • সমাধান পদ্ধতিতে সংখ্যা, অক্ষর, ফলাফল, বর্তমান_স্ট্রিং এবং বর্তমান_স্তর লাগে, ফাংশনটি এরকম হবে
  • যদি 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("49"))

ইনপুট

"49"

আউটপুট

['gw', 'gx', 'gy', 'gz', 'hw', 'hx', 'hy', 'hz', 'iw', 'ix', 'iy', 'iz']

  1. পাইথনে n স্বতন্ত্র নোড ব্যবহার করে সম্ভাব্য BST গুলির সংখ্যা খুঁজে বের করার প্রোগ্রাম তৈরি করা যেতে পারে

  2. পাইথনে সম্ভাব্য সকল বৈধ পথ থেকে সর্বোচ্চ স্কোর খুঁজে বের করার প্রোগ্রাম

  3. পাইথন ব্যবহার করে সমস্ত নোডে পৌঁছানোর জন্য ন্যূনতম সংখ্যক শীর্ষবিন্দু খুঁজে বের করার প্রোগ্রাম

  4. একটি অ্যারের সমস্ত সংখ্যা ব্যবহার করে 3 সংখ্যা দ্বারা বিভাজ্য করা সম্ভব কিনা তা পরীক্ষা করার জন্য পাইথন প্রোগ্রাম