[Python-CodingTest] 3-1. 회문 문자열 검사
회문 문자열 검사
문제 정리
입력
5 // n
level // 1번째 단어
moon // 2번째 단어
abcba // 3번째 단어
soon // 4번째 단어
gooG // 5(=n)번째 단어
처리 과정
- for문 안에서 스트링 입력받기
- 스트링을 모두 소문자로 변경
- 스트링 길이의 반만 for문으로 접근
- for문 안에서 대칭적으로 같은지 확인
출력
#1 YES
#2 NO
#3 YES
#4 NO
#5 YES
풀이 - 1
import sys
sys.stdin = open("./input/in1.txt", "rt")
n = int(input())
for i in range(n):
str=input() # 문자열 한 줄 읽어들이기
str=str.lower() # 대소문자 구분 x
leng=len(str)
for j in range(leng//2):
# if str[j]!=str[leng-j-1]: # 인덱스를 앞에서부터(0부터) 접근
if str[j]!=str[-1-j]: # 인덱스를 뒤에서부터(-1부터) 접근
print("#%d NO" %(i+1))
break
else:
print("#%d YES" %(i+1))
풀이 - 2
import sys
sys.stdin = open("./input/in1.txt", "rt")
n = int(input())
for i in range(n):
str=input()
str=str.lower()
if str==str[::-1]: ## str[::-1]은 str을 reverse 시킴!
print("#%d YES" %(i+1))
else:
print("#%d NO" %(i+1))
정리
- 맨 마지막 인덱스는
-1
(그 앞은-2
) - 대칭 확인할 때에는 스트링 길이의 반만 접근해도 됨:
range(leng//2)
- for-else문 사용시
break
잊지 말기 str[::-1]
은 str을 reverse 시킴! (하지만 직접 비교하는 것도 알아야함)
💛 개인 공부 기록용 블로그입니다. 👻