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

Palindrome hợp lệ bằng Python


Giả sử chúng ta có một chuỗi với các giá trị và ký hiệu chữ và số. Có cả chữ thường và chữ hoa. Chúng ta phải kiểm tra xem chuỗi có tạo thành palindrome hay không bằng cách chỉ xem xét các chữ cái viết thường (chữ hoa sẽ được chuyển thành chữ thường), các ký hiệu khác như dấu phẩy, dấu cách sẽ bị bỏ qua.

Giả sử chuỗi giống như “A Man, a Plan, a Canal:Panama”, thì bằng cách xem xét các quy tắc này, nó sẽ là “amanaplanacanalpanama”. Đây là một hội chứng pali.

Để giải quyết vấn đề này, hãy làm theo các bước sau -

  • xác định x =“”
  • đọc từng ký tự c trong str -
    • nếu c là chữ cái viết thường hoặc số, thì nối c vào x
    • else c là một chữ cái viết hoa, sau đó chỉ cần chuyển nó thành chữ thường và thêm vào sau x
  • nếu x là palindrome thì trả về True, ngược lại là False

Ví dụ

Hãy cho chúng tôi xem việc triển khai để hiểu rõ hơn

class Solution(object):
   def isPalindrome(self, s):
      """
      :type s: str
      :rtype: bool
      """
      x = ""
      diff = ord('a') - ord('A')
      for i in s:
         if ord(i)>=ord('a') and ord(i)<=ord('z') or ord(i)>=ord("0") and ord(i)<=ord("9"):
            x+=i
         elif ord(i)>=ord('A') and ord(i)<=ord('Z'):
            i = chr(diff+ord(i))
            x+=i
      #print(s)
      #print(x)
      return x == x[::-1]
ob1 = Solution()
print(ob1.isPalindrome("A Man, a Plan, a Canal: Panama"))

Đầu vào

s = "A Man, a Plan, a Canal: Panama"

Đầu ra

true