কম্পিউটার

পাইথনে সংযোজিত হলে একটি প্যালিনড্রোম তৈরি না হওয়া পর্যন্ত S1-এর উপসর্গ এবং S2-এর প্রত্যয়-এর মতো সূচক i খুঁজুন


ধরুন আমাদের কাছে একই দৈর্ঘ্যের দুটি স্ট্রিং S1 এবং S2 আছে, আমাদের একটি সূচক i খুঁজে বের করতে হবে যাতে S1[0…i] এবং S2[i+1…n-1] দেয় একটি প্যালিনড্রোম যখন তারা একসাথে সংযুক্ত হয়। যখন এটি সম্ভব না হয়, ফিরুন -1।

সুতরাং, যদি ইনপুটটি S1 ="pqrsu", S2 ="wxyqp" এর মত হয়, তাহলে আউটপুট হবে 1 হিসাবে S1[0..1] ="pq", S2[2..n-1] ="ypq" ", তারপর S1 + S2 ="pqyqp" একটি প্যালিনড্রোম নির্দেশ করে৷

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

  • n :=str1 এর আকার

  • str :=ফাঁকা স্ট্রিং

  • 0 থেকে n রেঞ্জের জন্য, করুন

    • str :=str concatenate str1[i>

    • temp :=ফাঁকা স্ট্রিং

    • i + 1 থেকে n রেঞ্জে j এর জন্য, করুন

      • temp :=temp concatenate str2[j>

    • যদি isPalindrome(str concatenate temp) সত্য হয়, তাহলে

      • ফেরত i

  • রিটার্ন -1

উদাহরণ

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

def isPalindrome(s):
   if s == s[::-1]:
      return True
   return False
def find_index(str1, str2):
   n = len(str1)
   str = ""
   for i in range(n):
      str = str + str1[i]
      temp = ""
      for j in range(i + 1, n):
         temp += str2[j]
      if (isPalindrome(str + temp)):
         return i
   return -1
str1 = "pqrsu"
str2 = "wxyqp"
print(find_index(str1, str2))

ইনপুট

"pqrsu", "wxyqp"

আউটপুট

1

  1. পাইথনে দ্বিতীয় স্ট্রিং-এ ন্যূনতম সূচকে উপস্থিত প্রথম স্ট্রিং-এর অক্ষর খুঁজুন

  2. একটি অ্যারেতে এমন একটি উপাদান খুঁজুন যাতে উপাদানগুলি পাইথনে কঠোরভাবে হ্রাস এবং বৃদ্ধির ক্রম তৈরি করে

  3. একটি ধনাত্মক সংখ্যা M খুঁজুন যেমন gcd(N^M,N&M) পাইথনে সর্বাধিক

  4. পাইথনে প্যাটার্ন খুঁজুন এবং প্রতিস্থাপন করুন