[알고리즘]회문 문자열 검사

김도연·2024년 1월 4일

알고리즘

목록 보기
12/56

문제

N개의 문자열 데이터를 입력받아 앞에서 읽을 때나 뒤에서 읽을 때나 같은 경우(회문 문자열) 이면 YES를 출력하고 회문 문자열이 아니면 NO를 출력하는 프로그램을 작성한다.
단 회문을 검사할 때 대소문자를 구분하지 않습니다.

입력1

5
level
moon
abcba
soon
gooG

출력1

#1 YES
#2 NO
#3 YES
#4 NO
#5 YES

[내 코드]

N=int(input())

def is_string(str):
    str=str.upper()
    if str==str[::-1]:
        return True
    else:
        return False
    
word=[]
for i in range(N):
    word.append(str(input()))

for i in range(len(word)):
    if(is_string(word[i])):
        print("#%d YES" %(i+1))
    else:
        print("#%d NO" %(i+1))
  1. 입력받은 문자열을 모두 대문자로 변환(소문자로 변환도 상관없음)
  2. 문자열을 역순으로 했을 때 원래의 문자열과 일치하면 True반환

[해설코드]

n=int(input())
for i in range(n):
	s=input()
    s=s.upper()
    size=len(s)
    for j in range(size//2):
    	s[j]!=s[-1-j]:
        	print("#%d NO" %(i+1))
            break
    else:
    	print("#%d YES" %(i+1))
        

0개의 댓글