在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
猜你喜欢