কম্পিউটার

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


ধরুন আমাদের একটি স্ট্রিং s আছে, আমাদেরকে s এর বাম এবং ডান দিকে ছাঁটাই করে প্যালিনড্রোম পাওয়ার উপায়গুলি খুঁজে বের করতে হবে৷

সুতরাং, যদি ইনপুটটি s ="momo" এর মত হয়, তাহলে আউটপুট হবে 6, যেমন আপনি পেতে পারেন ["mom", "omo", "o", "o", "m", "m", " o")

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

  • একটি ফাংশন expand() সংজ্ঞায়িত করুন। এর জন্য i, j, s

    লাগবে
  • c :=0

  • যখন i>=0 এবং j

    • i :=i − 1, j :=j + 1

    • c :=c + 1

  • ফেরত c

  • প্রধান পদ্ধতি থেকে, নিম্নলিখিতগুলি করুন

  • c :=0

  • 0 থেকে s আকারের রেঞ্জের জন্য, করুন

    • c :=c + প্রসারিত করুন(i, i, s)

    • c :=c + প্রসারিত করুন(i, i + 1, s)

  • ফেরত c

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

উদাহরণ

def expand(i, j, s):
   c = 0
   while i >= 0 and j < len(s) and s[i] == s[j]:
      i −= 1
      j += 1
      c += 1
   return c
class Solution:
   def solve(self, s):
      c = 0
      for i in range(len(s)):
         c += expand(i, i, s)
         c += expand(i, i + 1, s)
      return c
ob = Solution()
s = "momo"
print(ob.solve(s))

ইনপুট

"momo"

আউটপুট

6

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

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

  3. স্ট্রিংয়ের সংখ্যা খুঁজে বের করার জন্য প্রোগ্রাম আমরা তৈরি করতে পারি যেখানে 'a' 'a' বা 'b' হতে পারে এবং 'b' পাইথনে 'b' থাকে

  4. পাইথনে একটি স্ট্রিং সাবস্ট্রিং অন্যটির জন্য প্রয়োজনীয় ন্যূনতম সংখ্যক অপারেশন খুঁজে বের করার প্রোগ্রাম