首页 > 试题广场 >

最长对称子字符串

[编程题]最长对称子字符串
  • 热度指数:5511 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
给定一个字符串(数字或大小写字母), 找出最长的对称的子串(如有多个,输出任意一个)。
例如:
输入:“abbaad”
输出:“abba”

输入描述:
字符串


输出描述:
字符串
示例1

输入

a1223a

输出

22
s = input()
if len(s) == 1:
    print(s)
else:
    max_len = 1
    k = 0
    
    for i in range(len(s)):
        l, r = i, i
        while l >= 0 and r < len(s) and s[l] == s[r]:
            current_len = r - l + 1
            if current_len > max_len:
                max_len = current_len
                k = l
            l -= 1
            r += 1
        
        l, r = i, i + 1
        while l >= 0 and r < len(s) and s[l] == s[r]:
            current_len = r - l + 1
            if current_len > max_len:
                max_len = current_len
                k = l
            l -= 1
            r += 1
    
    print(s[k:k + max_len])

发表于 2025-07-16 11:02:10 回复(0)