Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信,比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是aba,或baaab的加密形式),Cathcer的工作量实在是太大了,他只能向电脑高手求助,你能帮Catcher找出最长的有效密码串吗?
输入:ABBA
输出:4
输入:ABBBA
输出:5
分为偶数和奇数判断回文串
import sys
##判断回文串函数
def palindrome(s: str, left_: int,right_: int):
while left_ >= 0 and right_ < len(s) and s[left_] == s[right_]:
left_ -= 1
right_ += 1
return s[left_+1:right_]
max_palindrome = ""
for line in sys.stdin:
a = line.split()
for i in range(len(a[0])):
palindrome1 = palindrome(a[0], i, i)
palindrome2 = palindrome(a[0], i, i+1)
if len(palindrome1) > len(max_palindrome):
max_palindrome = palindrome1
if len(palindrome2) > len(max_palindrome):
max_palindrome = palindrome2
print(len(max_palindrome))