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