부분 문자열(Substring)이란 하나의 문자열 내에 존재하는 연속된 문자로 구성된 문자열을 말한다. 예를 들어서 문자열 'abcd'에는 'a', 'b', 'c', 'd', 'ab', 'bc', 'cd', 'abc', 'bcd', 'abcd'와 같은 부분 문자열이 존재한다. 어떤 문자열의 부분 문자열은 자기 자신을 포함한다.
어떤 문자열 S가 주어졌을 때, S의 부분 문자열들 중 가장 긴 팰린드롬(회문, Palindrome)의 길이를 출력하는 프로그램을 작성하시오. 팰린드롬이란 각 원소들의 순서를 뒤집어도 동일한 문자열을 나타낸다.
다음의 예시를 보자. 문자열 S가 'levelup'일 때, 팰린드롬이 되는 부분 문자열은 'l', 'e', 'v', 'u', 'p', 'eve', 'level'이 있다. 이들 중 가장 긴 부분 문자열은 'level'이 되므로 이 때의 정답은 5가 된다.
입력으로 하나의 문자열 S가 주어진다.
def number_of_palindrome(string1):
substring = []
for i in range(0, len(string1)+1):
for j in range(0, len(string1)+1):
substring.append(string1[i:j])
substring = list(set(substring))
substring.remove('')
palindrome = []
for i in substring:
if i[::-1] == i:
palindrome.append(i)
else:
pass
lenlist = [len(x) for x in palindrome]
return max(lenlist)
input1 = input()
print(number_of_palindrome(input1))