파이썬 회문 문자열 풀이 (python algorithm)
문제) 각 문자열이 회문 문자열(대칭)일 경우 True, 그렇지 않을 경우 False를 출력하는 프로그램.
회문(palindrome)?
앞에서부터 읽으나 뒤에서부터 읽으나 동일한 단어나 구
EX) mom, madam, level, dad, wow, noon
문자열 인덱싱 (string indexing)
a ='level'
인덱스를 나타내는 방법은 아래처럼 두가지가 있다.
l | e | v | e | l | |
index | 0 | 1 | 2 | 3 | 4 |
index | -5 | -4 | -3 | -2 | -1 |
이 경우, 문자열이 대칭인지 확인하기 위해서는 a[0]==a[-1] and a[1]==a[-2] 를 만족해야 한다.
i=0 일 때 -i-1=-1
i=1 일 때 -i-1=-2
가 된다.
파이썬 풀이1
input
3
level
good
bad
n=int(input())
for i in range(n):
s=input()
size=len(s)
for j in range(size//2):
if s[j] == s[-1-j]:
print(True)
break
else:
print(False)
파이썬 풀이2
n=int(input())
for i in range(n):
s=input()
if s==s[::-1]: #문자열을 리버스해주는 코드.
print(True)
else:
print(False)
'Python > 알고리즘 문제풀이' 카테고리의 다른 글
[파이썬/알고리즘] 스택을 활용한 가장 큰 수 문제 (0) | 2022.12.10 |
---|---|
[파이썬/알고리즘] 재귀함수를 이용한 이진수 출력 (0) | 2022.11.08 |