मान लीजिए कि हमारे पास समान लंबाई के दो तार S और T हैं, हमें यह जांचना है कि क्या दोनों तारों को एक समान बिंदु पर काटना संभव है ताकि S का पहला भाग और T का दूसरा भाग एक पैलिंड्रोम बना सके।
इसलिए, यदि इनपुट एस ="कैट" टी ="पीएसी" जैसा है, तो आउटपुट ट्रू होगा, जैसे कि अगर हम स्ट्रिंग्स को "सी" + "एट" और "डी" + "एसी" में काटते हैं, तो " c" + "ac" एक पैलिंड्रोम है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
n :=आकार का
-
मैं :=0
-
जबकि i
-
मैं :=मैं + 1
-
-
जब a [इंडेक्स i से n-i-1] पैलिंड्रोम हो या b [इंडेक्स i से n-i-1 तक] पैलिंड्रोम हो, तो सही लौटें
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
उदाहरण
class Solution: def solve(self, a, b): n = len(a) i = 0 while i < n and a[i] == b[-i-1]: i += 1 palindrome = lambda s: s == s[::-1] return palindrome(a[i:n-i]) or palindrome(b[i:n-i]) ob = Solution() S = "cat" T = "dac" print(ob.solve(S, T))
इनपुट
"cat","dac"
आउटपुट
True