-
github.com/onlybooks/algorithm-interview
팰린드롬
앞뒤가 똑같은 문장이나 단어 "소주 만 병만 주소" 😂😂😂😂😂😂
- isalnum(): 영문자, 숫자 여부를 판단
사용하면 아래와 같이 특수문자를 제외한 나머지 영문,한글 숫자만을 체크할 수 있다. 이때, 대소문자를 구분하지 않는 것을 유의해야함!
1. pop() 이용하기
이를 이용하면 원래 문자열에 있던 특수문자들을 제외하고 팰린드롬을 체크할 수 있다.
팰린드롬을 체크할 때는 pop을 사용하여 pop(0)과 pop()을 이용해 앞뒤로 꺼내서 체크한다.
2. 데크(Deque) 이용하기: 리스트 pop에 비해 성능이 향상됨
Double-ended Queue는 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료구조
3. 슬라이스 이용해서 성능 향상시키기: isalnum을 이용하지 않고, 정규식을 이용해 불필요한 문자를 제거하고
역인덱싱을 이용하여 출력시키면 성능을 향상시킬 수 있다.
추가로 아래도 실험해봤는데, 그렇게 크게 차이가 나질 않는다. 심지어 둘이 시간 순위가 바뀌는 경우도 있고..
if strs[::-1] != sts: 를 비교할 수 있다는게 좋은 것 같다.
str = input() def isPalindrome(s:str)->bool: return 0 if s != s[::-1] else 1 print(isPalindrome(str))
'2020년 > 코테' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 로그파일 재정렬 (0) 2020.12.19 [파이썬 알고리즘 인터뷰] 문자열 뒤집기 (0) 2020.12.15 [파이썬 알고리즘 인터뷰] 빅오, 자료형 (0) 2020.12.08 [파이썬 알고리즘 인터뷰] 파이썬 (0) 2020.12.08 [leetcode] Longest Substring with At Least K Repeating Characters (0) 2020.11.26