在Python中检查字符串的两个部分是否回文的程序
假设我们有两个长度相同的弦S和T,则必须检查是否可以在同一点切割两个弦,以使S的第一部分和T的第二部分形成回文。
因此,如果输入像S=“cat”T=“pac”,则输出将为True,就像如果我们将字符串切成“c”+“at”和“d”+“ac”,那么“c“+”ac“是回文。
为了解决这个问题,我们将遵循以下步骤-
n:=一个的大小
i:=0
当i<n且a[i]与b[ni-1]相同时,
我:=我+1
当a[从索引i到ni-1]为回文或b[从索引i到ni-1]为回文时,返回true
让我们看下面的实现以更好地理解-
示例
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