Python程式:檢查字串的兩個部分是否為迴文


假設我們有兩個長度相同的字串 S 和 T,我們需要檢查是否可以找到一個公共分割點,使得 S 的前半部分和 T 的後半部分組合成一個迴文字串。

例如,如果輸入是 S = "cat" T = "pac",則輸出為 True,因為如果我們將字串分割成 "c" + "at" 和 "p" + "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

更新於:2020年10月7日

276 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.