首页 > 试题广场 >

最长回文子串

[编程题]最长回文子串
  • 热度指数:181393 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
\hspace{15pt}对于给定的由小写字母构成的字符串 s,求出其最长回文子串的长度。

\hspace{15pt}子串为从原字符串中,连续的选择一段字符(可以全选、可以不选)得到的新字符串。
\hspace{15pt}一个字符串被称作回文串,当且仅当这个字符串从左往右读和从右往左读是相同的。

输入描述:
\hspace{15pt}在一行上输入一个长度为 1 \leqq {\rm len}(s) \leqq 350、仅由小写字母构成的字符串 s


输出描述:
\hspace{15pt}输出一个整数,表示字符串 s 的最长回文子串的长度。
示例1

输入

cdabbacc

输出

4

说明

\hspace{15pt}在这个样例中,\texttt{ 是最长的回文子串。
示例2

输入

a

输出

1
头像 老司机叫你上车
发表于 2021-10-17 16:33:16
while True: try: s = input() res = [] for i in range(len(s)): for j in range(i+1, len(s)+1): 展开全文
头像 1724268318
发表于 2021-10-07 23:41:37
import java.util.*; public class Main { public static void main(String args[]) { Scanner input = new Scanner(System.in); String s 展开全文
头像 限时烟花
发表于 2022-02-09 16:07:56
HJ85 最长回文子串 题解 by 限时烟花 1. 抽丝剥茧 这是一道非常基础的问题,也是每一个学习编程的人都回避不了的问题。 对于第一次接触这个问题的学习者,可以对问题作如下理解: 回文:即是要求子串本身是对称的; 最长:即是要求在所有子串中找到符合要求的。 2. 化繁为简 根据上一部分的分析 展开全文
头像 摸摸鱼丶
发表于 2020-08-06 10:36:45
解决方案1 while True: try: s = input() result = "" for i in range(len(s)): start = max(0, i-len(result)-1) 展开全文
头像 米斯特rollin
发表于 2022-05-04 22:30:45
题解 此题可以使用中心扩散法进行解答。 解题思路: 遍历整个字符串,每个字符都有两种可能:1.以当前下标为中心进行查找回文长度。2.以当前下标和下个值之间的空格为中心进行扩散。 例如:下边 i = 2时,会右如下的两种情况。 1.以 i 为中心扩散。 2.以i,i+1中的空格为中心。 代码 im 展开全文
头像 你敲代码的样子好像蔡徐坤
发表于 2021-10-03 20:35:57
#include<bits/stdc++.h> using namespace std; int getLen(string str, int low, int high) { //中心扩展法 while(low>=0 && high<str.l 展开全文
头像 牛客834002708号
发表于 2021-08-14 00:30:45
不是最优解,但是比较好理解。 截取两头相等的字符串,进行回文子串判断 (例:abccba) 将字串分为左右两部分( abccba  >>>  abc : cba ) 将后半段进行翻转,与前半段相等即为回文串(cba翻转 展开全文
头像 牛客464844775号
发表于 2021-12-05 12:04:51
l = input() Max = 0 for i in range(len(l)):     for j in range(i,len(l)):         if l[i:j+1] == l[i:j+1][::-1] and j-i+ 展开全文
头像 牛客829095468号
发表于 2022-07-21 14:29:18
#include<stdio.h> #include<string.h> int main(){     char str1[350],str2[350];     scanf 展开全文
头像 日不落拓海海
发表于 2022-02-15 14:12:20
与密码截取这道题一模一样 def spread(left, right): ans=0 while left>=0 and right<= n-1 and s[left]==s[right]: ans =right - left +1 le 展开全文