회문(Palindrome) 찾기
주어진 문자열이 회문이면 True, 아니면 False를 반환하라.
- 입력: madam, 출력: True
- 입력: tomato, 출력: False
방법
1. reversed(), join(), 리스트 컴프리헨션 사용
1 2 3 4
| def isPelindrome(str): reverse_str = "".join(list(reversed([x for x in str])))
return str == reverse_str
|
2. 슬라이싱 사용
1 2 3 4 5 6
| word = 'racecar'
if word == word[::-1]: print(True) else: print(False)
|
- 슬라이싱은
[startIndex:endIndex:interval]
로 사용하는데, startIndex
, endIndex
없이 interval만
사용하여 역순을 표현했다.
3. 포인터 2개 사용
1 2 3 4 5 6 7 8
| def is_palindrome(word): left,right = 0, len(word) - 1
while left < right: if (word[left] != word[right]): return False left, right = left + 1, right - 1 return True
|