별의 공부 블로그 🧑🏻‍💻
728x90
728x170

회문/팰린드롬(Palindrome) 판단하기 

들어가며

  • 회문(Palindrome) : 앞에서부터 읽든 뒤에서부터 읽든 동일한 단어나 문장
  • 대·소문자는 구분하지 않고, 공백이나 특수 문자는 제외한다.
  • 첫 글자와 마지막 글자를 비교하여 같으면 회문일 수 있고, 다르면 회문이 아니다.
  • 비교하지 않은 글자가 한 글자 이하이면 회문으로 확정하고, 한 글자 이하가 아니면 첫 글자는 다음 글자로 마지막 글자는 바로 앞 글자로 이동하는 식으로 비교하고 확인하는 과정을 반복한다.
회문인 예 회문이 아닌 예

 

프로그램 구현

  • 재귀 함수를 이용하여 팰린드롬의 여부를 확인하는 프로그램을 작성할 수 있다.
def palindrome(pStr) :
    if len(pStr) <= 1 :    # 문자열의 길이가 1이하이면 회문으로 처리
        return True
    
    if pStr[0] != pStr[-1] :    # 문자열의 첫 문자와 끝 문자가 다를 경우
        return False
    
    return palindrome(pStr[1:len(pStr) - 1])    # 회문 판별이 되지 않았을 경우, 앞뒤 한 칸씩 잘라내고 다시 함수 호출

strAry = ["reaver", "kayak", "Borrow or rob", "주유소의 소유주", "야 너 이번 주 주번이 너야", "살금 살금"]

for testStr in strAry :
    print(testStr, end = '--> ')
    testStr = testStr.lower().replace(' ', '')    # 영문자를 모두 소문자로 변경하고, 공백(' ')을 제거
    
    if palindrome(testStr) :
        print('O')
    else :
        print('X')
더보기
reaver--> X
kayak--> O
Borrow or rob--> O
주유소의 소유주--> O
야 너 이번주 주번이 너야--> O
살금 살금--> X

 

728x90
그리드형(광고전용)
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️


📖 Contents 📖