此教程使用C++版本编写代码,如需其他版本,请自行修改,并在力扣网站中测试!
题目描述
给你一个字符串 s,找到 s 中最长的回文子串。
示例1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例2:
输入:s = "cbbd"
输出:"bb"
提示:
1 <= s.length <= 1000
s
仅由数字和英文字母组成
C++题目源码:
class Solution {
public:
string longestPalindrome(string s)
{
if(s.length()==0)
{
return "";
}
int size=s.length();
int left=0;
int right=0;
int len=1;
int maxPos=0;
int maxLen=0;
for(int i=0;i<size;i++)
{
left=i-1;
right=i+1;
//左边
while(left>=0&&s[left]==s[i])
{
len++;
left--;
}
//右边
while(right<size&&s[right]==s[i])
{
len++;
right++;
}
//左边和右边对称
while(left>=0&&right<size&&s[left]==s[right])
{
len+=2;
left--;
right++;
}
if(len>maxLen)
{
maxLen=len;
maxPos=left;
}
len=1;
}
return s.substr(maxPos+1,maxLen);
}
};
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
C++
+关注
关注
21文章
2066浏览量
72901 -
代码
+关注
关注
30文章
4556浏览量
66814 -
编写
+关注
关注
0文章
29浏览量
8373
发布评论请先 登录
相关推荐
关于子VI输出变量疑问
给我大神好!我是新手,请教一下,串口通信时,字符串输出放在Case结构True中,且放在子VI中,当False发生时,为什么此字符串输出作为子VI的输出端子时,会变空字符
发表于 06-27 09:35
Linux Shell系列教程之Shell字符串用法
$substring的子串${string##substring}从变量$string的开头, 删除最长匹配$substring的子串${s
发表于 08-29 16:01
格式化发送字符串到HC05的功能
这个模块提供了格式化发送字符串到HC05的功能,占用stm32的串口31.头文件#ifndef __HC_05#define __HC_05/*本模块为HC
发表于 08-11 08:41
python判断是否包含子串的7种方法
;lol" in "hello, python"False2、使用 find 方法使用 字符串 对象的 find 方法,如果有找到子串,就可以返回指定子串在字符
发表于 04-08 15:15
word文档解密方法说明
word文档解密方法,当我们求取最长回文子串时,常见的方法就是中心扩散法,即从字符中心出发,向两边对比,检查是否相等,若等于,则继续检查,并使当前字符中心对应的最长回文子串长度加一,否
如何用python判断字符串是否为回文
用两个变量left,right模仿指针(一个指向第一个字符,一个指向最后一个字符),每比对成功一次,left向右移动一位,right向左移动一位,如果left与right所指的元素不相等则退出,最后比较left与right的大小,如果left>right则说明是回文字符串。
评论