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

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


মান ল করুন একটি S স্ট্রিং। আমাদের S-এ সর্বোচ্চ দৈর্ঘ্যের প্যালিনড্রোমিক সাবস্ট্রিংর দৈর্ঘ্য খুঁজে বের করতে হবে। স্ট্রিং S-এর দৈর্ঘ্য ১০০০ ধরে নেওয়া হয়েছে। যেমন স্ট্রিং "BABAC" হলে, সর্বোচ্চ প্যালিনড্রোমিক সাবস্ট্রিং "BAB" এবং দৈর্ঘ্য ৩।

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

  • স্ট্রিং-এর দৈর্ঘ্যের অর্ডারের একটি স্কয়ার ম্যাট্রিক্স বানান, False দিয়ে ভরা
  • মেজর ডায়াগোনাল এলিমেন্টগুলো True করুন, DP[i][i] = True for all i from 0 to order-1
  • start := 0
  • l কে ২ থেকে S-এর দৈর্ঘ্য + ১ পর্যন্ত লুপ চালান:
    • i কে ০ থেকে S-এর দৈর্ঘ্য - l + 1 পর্যন্ত লুপ চালান:
      • end := i + l
      • যদি l = 2, তবে: যদি S[i] == S[end-1], DP[i][end-1] = True, max_len := l, start := i
      • অন্যথায়: যদি S[i] == S[end-1] এবং DP[i+1][end-2], DP[i][end-1] = True, max_len := l, start := i
  • max_len ফেরত দিন

বेहतर বোঝার জন্য নিচের ইমপ্লিমেন্টেশনটি দেখুন:

উদাহরণ

class Solution(object):    def solve(self, s):       dp = [[False for i in range(len(s))] for i in range(len(s))]       for i in range(len(s)):          dp[i][i] = True       max_length = 1       start = 0       for l in range(2,len(s)+1):           for i in range(len(s)-l+1):             end = i+l             if l==2:                 if s[i] == s[end-1]:                   dp[i][end-1]=True                   max_length = l                   start = i             else:                 if s[i] == s[end-1] and dp[i+1][end-2]:                   dp[i][end-1]=True                   max_length = l                   start = i return max_length ob = Solution() print(ob.solve('BABAC'))

ইনপুট

"ABBABBC"

আউটপুট

5

  1. পাইথনে অক্রমাগত অ্যারেতে সর্বোচ্চ ক্রমাগত সিকোয়েন্সের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে দুটি স্ট্রিং থেকে সর্বোচ্চ অ্যানাগ্রাম সাবসিকোয়েন্সের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  3. পাইথনে স্ট্রিংয়ে সর্বোচ্চ সমবায়ন ব্র্যাকেট সাবসিকোয়েন্সের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম

  4. পাইথনে লองেস্ট প্যালিনড্রোমিক সাবস্ট্রিং (Longest Palindromic Substring)