Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình kiểm tra hai phần của chuỗi có tạo thành palindrome không trong Python

Cho hai chuỗi S và T cùng độ dài. Kiểm tra xem có thể cắt cả hai tại một điểm chung sao cho phần đầu của S và phần sau của T ghép thành palindrome.

Ví dụ

Đầu vào: S = "cat", T = "dac".
Đầu ra: True (cắt "c"+"at" và "d"+"ac", ghép "c"+"ac" = "cac" là palindrome).

Thuật toán

  1. Đặt n = len(a), i = 0.
  2. Khi i < n và a[i] == b[n-i-1], tăng i.
  3. Kiểm tra xem a[i:n-i] hoặc b[i:n-i] có phải palindrome không.

Mã nguồn Python

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()
print(ob.solve("cat", "dac"))

Đầu vào / Đầu ra

Input: "cat","dac"
Output: True