icon_cakewalk 프로그램 13-1

     

    회문 찾기 알고리즘

     

    ◉ 예제 소스 p13-1-palindrome.py

    # 주어진 문장이 회문인지 아닌지 찾기(큐와 스택의 특징을 이용)

    # 입력: 문자열 s

    # 출력: 회문이면 True, 아니면 False

     

    def palindrome(s):

        # 큐와 스택을 리스트로 정의

        qu = []

        st = []

        # 1단계: 문자열의 알파벳 문자를 각각 큐와 스택에 넣음

        for x in s:

            # 해당 문자가 알파벳이면(공백, 숫자, 특수문자가 아니면)

            # 큐와 스택에 각각 그 문자를 추가

            if x.isalpha():

                qu.append(x.lower())

                st.append(x.lower())

        # 2단계: 큐와 스택에 들어 있는 문자를 꺼내면서 비교

        while qu: # 큐에 문자가 남아 있는 동안 반복

            if qu.pop(0) != st.pop(): # 큐와 스택에서 꺼낸 문자가 다르면 회문이 아님

                return False

     

        return True

     

    print(palindrome(“Wow”))

    print(palindrome(“Madam, I’m Adam.”))

    print(palindrome(“Madam, I am Adam.”))

     

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.