কম্পিউটার

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


ধরুন আমাদের একটি টেক্সট আছে। আমাদের সবচেয়ে বড় সম্ভাব্য k খুঁজে বের করতে হবে যাতে সেখানে a[1], a[2], ..., a[k] থাকে যেমন:প্রতিটি a[i] একটি স্ট্রিং যা ফাঁকা নয়। এবং তাদের সংযুক্তি a[1] + a[2] + ... + a[k] প্রদত্ত পাঠ্যের সমান; 1 থেকে k রেঞ্জের সকলের জন্য, a[i] =a[{k+1 - i}]।

সুতরাং, যদি ইনপুটটি পাঠ্য ="antaprezatepzapreanta" এর মত হয়, তাহলে আউটপুট হবে 11 কারণ আমরা এটিকে "a|nt|a|pre|za|tpe|za|pre|a|nt|a" এর মতো বিভক্ত করতে পারি।

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

  • কাউন্টার :=0

  • i :=1, j :=পাঠ্যের আকার - 1

  • ic :=0, jc :=পাঠ্যের আকার

  • যখন আমি <=j, কর

    • যদি পাঠ্যের সাবস্ট্রিং [সূচী আইসি থেকে i-1 পর্যন্ত] পাঠ্যের সাবস্ট্রিং [সূচী j থেকে jc-1] এর মতো হয়, তাহলে

      • কাউন্টার :=কাউন্টার + 2

      • ic :=i

      • jc :=j

    • i :=i + 1

    • j :=j - 1

  • যদি ic jc এর মত না হয়, তাহলে

    • কাউন্টার :=কাউন্টার + 1

  • রিটার্ন কাউন্টার

উদাহরণ

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

def solve(text):counter =0 i, j =1, len(text) - 1 ic, jc =0, len(text) যখন i <=j:if text[ic:i] ==text [j:jc]:counter +=2 ic =i jc =j i +=1 j -=1 যদি ic !=jc:counter +=1 ফিরতি countertext ="antaprezatepzapreanta"print(solve(text))

ইনপুট

<প্রে>[3,4,5,2,1,7,3,4,7], 3

আউটপুট

11

  1. পাইথনে একটি শব্দ বিন্যাসের দৈর্ঘ্যের দীর্ঘতম উপসর্গ ক্রম খুঁজে বের করার প্রোগ্রাম

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

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

  4. পাইথনে একটি এন-আরি গাছের দীর্ঘতম পথের দৈর্ঘ্য খুঁজে বের করার প্রোগ্রাম