def palindrome(s):
s_len = len(s)
i = 0
if(s_len % 2 == 0):
while i < s_len/2 :
if (s[i-1] != s[-i]) :
return 0
i += 1
return 1
else:
while i < (s_len-1)/2 :
if (s[i-1] != s[-i]) :
return 0
i += 1
return 1
x = int(input())
x_list = [""] * x
for i in range(x):
x_list[i] = input()
for i in range(x):
print(palindrome(x_list[i]))
# 중복 코드 없애기
def palindrome(s):
s_len = len(s)
i = 0
while i < (s_len-1)/2 :
if (s[i-1] != s[-i]) :
return 0
i += 1
return 1
😑 재귀 안써도 되잖아...
def palindrome(s,r):
if(len(s) <= 1):
return 1,r
if(s[0] != s[-1]):
return 0,r
return palindrome(s[1:-1],r+1)
x = int(input())
x_list = [""] * x
for i in range(x):
x_list[i] = input()
for i in range(x):
a,b = palindrome(x_list[i],1)
print(a, b)
나는 계속 아래의 풀이 방법을 이용했다.
def palindrome(s,r):
if(len(s) <= 1):
return 1,r
if(s[0] != s[-1]):
return 0,r
palindrome(s[1:-1],r+1)
📌 재귀 함수의 호출은 스택에 저장된다. return으로 호출의 결과문을 저장하지 않으면 스택에서 값이 날라가 사용할 수 없다. 재귀 호출 문의 결과를 return을 사용해서 이전 호출로 전달되어야한다.
솔직히 모르겠음...🤮