def check(string):
[0] string = string.upper()
# 문자열의 중간을 구하는 함수
def get_middle_index(string):
return len(string)//2
[1] if len(string)%2==1:
if string[-1:get_middle_index(string):-1] == string[0:get_middle_index(string)]:
return 1
else:
return 0
[2] if len(string)%2==0:
if string[0:get_middle_index(string)] == string[-1:get_middle_index(string)-1:-1]:
return 1
else:
return 0
[0] 대소문자 구분이 없이 같은 값으로 처리해야 하기 때문에 처음부터 문자열을 대문자로 바꾸고 시작한다.
[1] 문자열의 길이가 홀수일 때 중간에 있는 문자를 기준으로 뒤에 문자와 앞의 문자를 비교한다. 뒤에 문자를 역순으로 하여 앞의문자와 완벽하게 일치하면 1을 리턴한다.
[2] 중간을 기준으로 나누어 뒤의 문자와 앞의 문자를 비교한다.
[1]의 경우 가장 중간에 위치한 문자 뒤부터 역순으로 바꾸어야 하기 때문에 [2]와 다르게 -1을 하지 않는다.
def check(string):
[0] string = string.upper()
# 문자열의 중간을 구하는 함수
def get_middle_index(string):
return len(string)//2
[1] for i in range(0, get_middle_index(string)):
if string[i] != string[-1-i]:
return 0
[2] return 1
[0] 대소문자 구분이 없이 같은 값으로 처리해야 하기 때문에 처음부터 문자열을 대문자로 바꾸고 시작한다.
[1] 문자열의 중간 값 까지의 문자 하나하나를 비교한다. 첫번째 인덱스의 문자와 마지막 인덱스의 문자부터 비교하기 시작하여 하나라도 다른것이 나오면 0을 리턴한다.
[2] for문을 통과하면 회문이기 때문에 1을 리턴한다.
같은 결과를 가져오지만 풀이 2의 경우 홀수와 짝수를 나누어 비교하지 않아도 되고, [2]와 달리 회문이 아닌 경우를 먼저 걸러내기 때문에 짧은 로직으로 결과를 도출 할 수 있다.