오늘도 개발

파이썬 코딩 도장 - Palindrome 검사하기 본문

자료구조 & 알고리즘/Leetcode

파이썬 코딩 도장 - Palindrome 검사하기

Sueeeeeee 2022. 4. 13. 18:21

python

1. 문자열 앞쪽, 끝쪽에서 가운데로 비교해나가는 방법

인덱스 i, j 사용

word = 'madame'

isPalindrome = True
i = 0
j = len(word) - 1

while(i <= j):
    if (word[i] != word[j]):
        isPalindrome = False
        break
    i += 1
    j -= 1
print(isPalindrome)

파이썬의 마이너스 인덱스 사용

word = 'madame'

isPalindrome = True
for i in range(len(word) // 2):
    if word[i] != word[-1 - i]:
        isPalindrome = False
        break

print(isPalindrome)

 

2. 시퀀스 뒤집기로 검사하는 방법

word = 'madame'
print(word == word[::-1])
word = 'madame'
print(list(word) == list(reversed(word)))

 

3.  재귀함수로 검사하는 방법

def is_palindrome(word):
    if len(word) < 2:
        return True
    if word[0] != word[-1]:
        return False
    return is_palindrome(word[1:-1])

 

c++

1. 새 문자열 만들고 기존 문자열 reverse 복사 후, 기존 문자열과 일치하는지 확인하는 방법

2. 새 문자열 만들 필요 x. 첫글자, 끝글자 일치하는지 하나씩 확인하는 방법

// 2번 방법
char A[] = "madam";
    int length = 5;
    int palindrome = 1;
    for (int i = 0, j = length-1; i <= j; i++, j--){
        if (A[i] != A[j]){
            palindrome = 0;
            break;
        }
    }
    printf("%i\n", palindrome);