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

Kiểm tra xem tất cả các chuỗi con đối xứng có độ dài lẻ hay không trong Python


Giả sử chúng ta có một chuỗi s, cần kiểm tra xem tất cả các chuỗi con đối xứng (palindromic substring) của nó có độ dài lẻ hay không.

Ví dụ, nếu đầu vào là s = "levelopmadam", thì đầu ra sẽ là True vì có hai chuỗi con đối xứng "level" và "madam", cả hai đều có độ dài lẻ.

Các bước giải quyết:

  • Duyệt i từ 0 đến độ dài s - 1:
    • temp := chuỗi rỗng.
    • Duyệt j từ i đến độ dài s - 1:
      • temp := temp + s[j].
      • Nếu độ dài temp là chẵn và temp là palindrome, trả về False.
  • Trả về True.

Xem ví dụ dưới đây để hiểu rõ hơn:

Ví dụ

def is_palindrome(s):
    return s == s[::-1]

def solve(s):
    for i in range(len(s)):
        temp = ""
        for j in range(i, len(s)):
            temp += s[j]
            if len(temp) % 2 == 0 and is_palindrome(temp):
                return False
    return True

s = "levelopmadam"
print(solve(s))

Đầu vào

"levelopmadam"

Đầu ra

True