用 Python 编写程序检查字符串的两个部分是否为回文

pythonserver side programmingprogramming更新于 2026/1/12 9:48:17

假设我们有两个长度相同的字符串 S 和 T,我们必须检查是否有可能在一个公共点处切断两个字符串,以便 S 的第一部分和 T 的第二部分形成回文。

因此,如果输入为 S = "cat" T = "pac",则输出将为 True,因为如果我们将字符串切成 "c" + "at" 和 "d" + "ac",则 "c" + "ac"是回文。

为了解决这个问题,我们将遵循以下步骤 −

  • n := a 的大小

  • i := 0

  • 当 i < n 且 a[i] 与 b[n-i-1] 相同时,则

    • i := i + 1

  • 当 a[从索引 i 到 n-i-1] 是回文或 b[从索引 i 到 n-i-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

相关文章


有用资源