Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 유효한 회문


영숫자 값과 기호가 포함된 문자열이 있다고 가정합니다. 소문자와 대문자도 있습니다. 소문자(대문자는 소문자로 변환)만 고려하여 문자열이 회문을 형성하는지 확인해야 하며, 쉼표와 같은 다른 기호, 공백은 무시됩니다.

문자열이 "A Man, Plan, a Canal:Panama"와 같다고 가정하고 이러한 규칙을 고려하면 "amanaplanacalpanama"가 됩니다. 회문입니다.

이 문제를 해결하려면 다음 단계를 따르십시오 -

  • x ="" 정의
  • str의 각 문자 c 읽기 -
    • c가 소문자 또는 숫자이면 x에 c를 추가합니다.
    • 그렇지 않으면 c가 대문자인 경우 소문자로 변환하고 x 뒤에 추가하기만 하면 됩니다.
  • x가 회문이면 True를 반환하고 그렇지 않으면 False를 반환합니다.

더 나은 이해를 위해 구현을 살펴보겠습니다.

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') 및 ord(i)<=ord('Z'):i =chr(diff+ord(i)) x+=i #print(s) #print(x) return x ==x[::-1]ob1 =Solution()print(ob1.isPalindrome("남자, 계획, 운하:파나마")) 

입력

 ="남자, 계획, 운하:파나마"

출력

사실