Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình kiểm tra hai phần của một chuỗi có phải là palindrome hay không bằng Python

Giả sử chúng ta có hai chuỗi S và T cùng độ dài, chúng ta phải kiểm tra xem liệu có thể cắt cả hai chuỗi tại một điểm chung để phần đầu tiên của S và phần thứ hai của T tạo thành một palindrome hay không.

Vì vậy, nếu đầu vào là S ="cat" T ="pac", thì đầu ra sẽ là Đúng, như Nếu chúng ta cắt các chuỗi thành "c" + "at" và "d" + "ac", thì " c "+" ac "là một palindrome.

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -

  • n:=kích thước của một

  • i:=0

  • trong khi i

    • i:=i + 1

  • trả về true khi a [từ chỉ mục i đến n-i-1] là palindrome hoặc b [từ chỉ mục i đến n-i-1] là palindrome

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

Ví dụ

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))

Đầu vào

"cat","dac"

Đầu ra

True