728x90
문제 제목: 회문 문자열 검사
회문 문자열 검사 N개의 문자열 데이터를 입력받아 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열) 이면 YES를 출력하고 회문 문자열이 아니면 NO를 출력하는 프로그램을 작성한다.
단 회문을 검사할 때 대소문자를 구분하지 않습니다.
▣ 입력설명
첫 줄에 정수 N(1<=N<=20)이 주어지고, 그 다음 줄부터 N개의 단어가 입력된다.
각 단어의 길이는 100을 넘지 않는다.
▣ 출력설명
각 줄에 해당 문자열의 결과를 YES 또는 NO로 출력한다.
▣ 입력예제
5
level
moon
abcba
soon
gooG
▣ 출력예제
#1 YES
#2 NO
#3 YES
#4 NO
#5 YES
나의 풀이
N = int(input())
def solution(s):
answer = 'YES'
size = len(s)
s = s.upper()
if len(s) == 1:
answer = 'YES'
else :
for i in range(0,size//2+1):
if s[i] == s[-1-i]:
pass
else:
answer = "NO"
return answer
for x in range(N):
s = input()
print(f"#{x+1} {solution(s)}")
문자열에서
만약 s = 'abcde'라고 하자,
s[-1] = 'e' 이다!
문자열 순서의 특징을 이용해서 잘 구하면 된다.
모범답안
N = int(input())
for i in range(N):
s = input()
s = s.upper()
if s == s [::-1]:
print("#%d YES" %(i+1))
else:
print("#%d NO" %(i+1))
※ 알아야 할 것
- 문자열에서 -1번째는 문자열의 제일 뒤에있는 인덱스와 같다.
728x90
'coding test - python > 기본기 문제' 카테고리의 다른 글
문제 / 두 리스트 합치기 / Python (0) | 2022.04.04 |
---|---|
문제 / 숫자만 추출 / Python (0) | 2022.04.01 |
문제 / 점수계산 / Python (0) | 2022.03.31 |
문제 / 주사위 게임 / Python (0) | 2022.03.31 |
문제 / 뒤집은 소수 / Python (0) | 2022.03.31 |