728x90
문제
N개의 문자열 데이터를 입력받아 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열) 이면 YES를 출력하고 회문 문자열이 아니면 NO를 출력하는 프로그램을 작성한다.
단 회문을 검사할 때 대소문자를 구분하지 않습니다.
▣ 입력설명
첫 줄에 정수 N(1<=N<=20)이 주어지고, 그 다음 줄부터 N개의 단어가 입력된다. 각 단어의 길이는 100을 넘지 않는다.
▣ 출력설명
각 줄에 해당 문자열의 결과를 YES 또는 NO로 출력한다.
▣ 입력예제 1
5
level
moon
abcba
soon
gooG
▣ 출력예제 1
#1 YES
#2 NO
#3 YES
#4 NO #5 YES
<코드>
n = int(input())
for i in range(n):
s = input()
#s = list(s.lower()) -> list 안해도됨
s = s.lower() # 모든 문자를 소문자로 변환 (대소문자 구분 안할 수 있음)
m = len(s)//2
cnt = 0
for j in range(m):
if s[j] != s[len(s)-1-j]:
print("#"+str(i+1)+" NO")
cnt = 1
break
if cnt == 0:
print("#"+str(i+1)+" YES")
"""
위 부분(if cnt == 0)
# else:
# print("#%d YES" %(i+1))
이런식으로 고치면 cnt라는 변수 없이 for 문안에서 break 가 안되면 else를 실행함
"""
'''
문자열 슬라이싱
s[::-1] -> print 하면 문자를 자동으로 거꾸로 돌려줌
이상태에서
if s==s[::-1] 로 해도 됨 원래 문자랑 거꾸로 된 문자랑 비교
'''
728x90
'Algorithm > 탐색 & 시뮬레이션' 카테고리의 다른 글
격자판 최대 합 - python (0) | 2023.07.15 |
---|---|
수들의 합 - python (0) | 2023.07.15 |
두 리스트 합치기 - python (0) | 2023.07.15 |
카드 역배치(정올 기출)-python (0) | 2023.07.15 |
숫자만 추출 -python (0) | 2023.07.14 |