最长回文子串问题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
题目描述
给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。
示例 1:
输入: "babad"
输出: "bab"
注意: "aba" 也是一个有效答案。示例 2:
输入: "cbbd"
输出: "bb"
题目分析
其实,这道题的解法有多种,包括暴力解法、动态规划、中心扩展法等,在这里,只讲述中心扩展法,剩下的几种办法,大家可以自行百度。中心扩展法的基本思想是以某个元素为中心,分别同步长像左右蔓延,判断左右元素是否相同,如果相同则继续蔓延,如果不同,则立刻停止,并判断这个子字符串的长度是否为最长。注意:回文串的长度还有基数偶数之分,这个处理的方式有所不同,详细思路请见源代码。
源代码
当回文数的长度为奇数时,偶数的计算方式得出的长度没有上述的奇数计算方式大,所以也只有奇数计算方式有效果,同样,当回文数的长度为偶数时,奇数的计算方式得出的长度没有偶数的计算方式计算的长度大,此时奇数计算方式的结果被偶数计算方式的结果更新。
class Solution {
public:string longestPalindrome(string s) { int len=s.size();int maxlen=1;int start=0;//当回文数的长度为奇数时for(int i=0;i<len;i++){int left=i-1,right=i+1;while(left>=0&&right<len&&s[left]==s[right]){if(right-left+1>maxlen){maxlen=right-left+1;start=left;}left--;right++;}}//当回文数的长度为偶数时for(int i=0;i<len;i++){int left=i,right=i+1;while(left>=0&&right<len&&s[left]==s[right]){if(right-left+1>maxlen){maxlen=right-left+1;start=left;}left--;right++;}}return s.substr(start,maxlen);}
};
最长回文子串问题:给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。相关推荐
- java 求最长重复子串_给定一个字符串,求出其最长的重复子串。
#include #include #include #include using namespace std; //给定一个字符串,求出其最长的重复子串 //方法一 string lsubstr_1 ...
- Java中找出s字符串的回文_给定一个字符串 s,找到 s 中最长的回文子串。
题目描述:给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 思路: 判断s[i..j]是否是回文字符串,依赖于s[i+1...j-1],这种一个问题的结果依赖于 ...
- 字符串:1.给定一个字符串s,分割s使得s的每一个子串都是回文串
给定一个字符串s,分割s使得s的每一个子串都是回文串 返回所有的回文分割结果.(注意:返回结果的顺序需要和输入字符串中的字母顺序一致.) 例如:给定字符串s="aab", 返回 [ ...
- 算法题——给你一个字符串s,找到s中最长的回文子串。
一.给你一个字符串 s,找到 s 中最长的回文子串. 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符 ...
- 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?
给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串.如何删除才能使得回文串最长呢? 输出需要删除的字符个数. 输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s. ...
- python练习题:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度
题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 题目解析: 有一个字符串,长度不定, 要找出不重复字符串的长度,我们可以这么假设,先找到第一个下标,然后从后面拿到元素的下标对 ...
- (java)给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. public class LengthOfLongestSubstring {public int lengthOfLonges ...
- 【每日一练及解题思路V1】给定一个字符串,找出其中不含重复字符的最长子串的长度
一.题目:给定一个字符串,找出其中不含重复字符的最长子串的长度: 二.举例: 比如"abcdefgh",不含重复字符的最长子串为eacdb,长度为8: 比如"abceac ...
- 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度
题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &q ...
- 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "ab ...
最新文章
- 《数据中心布线系统的设计与施工技术白皮书》目录
- java ehcahce刷新_springboot结合ehcache防止恶意刷新请求的实现
- C/C 代码规范注释有哪些讲究?
- vue v html安全,vue 中控制v-html 中的样式,但不影响全局的小技巧
- java semaphore 等待_Java并发编程系列之Semaphore详解
- can't request region for resource [mem 0xfed40080-0xfed40fff]问题的解决办法
- 怎么查看计算机的系统内存大小,Windows10系统怎么查看电脑内存大小
- mysql分区表优缺点,Mysql 表分区和性能
- Spring学习(六)
- 牛逼,个人开发者可以申请微信支付了!
- 抗疫先锋 | IBM:同心抗疫,重塑未来 - emerge smarter!
- [JS jQuery项目]仿网易云音乐项目问题摘要
- 计算机C语言好学吗?要是想自学应该怎么办?大学挂科赶紧恶补!
- idea火箭_火箭的大脑
- 写给运维新手的十一条 Docker 守则,牢记!
- 易基因 - 重磅!2021最新SCI影响因子发布,国内期刊TOP10出炉
- JavaScript 个人笔记3(详细BOMDOM)
- MATLAB遗传算法求解超市物流配送选址问题实例
- SQL注入【二】——MYSQL注入的基本流程
- “操作系统的「冷板凳」要坐多久?”长文解读16年开源人的坚持
热门文章
- 讯为开发板的最小LINUX系统烧写及U盘的挂载及卸载
- android 引用 project以及下拉刷新开源类库Android-PullToRefresh 的使用
- AOP(execution表达式)
- jpython 传入参数_C++嵌入Python程序(二):参数传入及返回
- html中rowspan设置动态值_大众标准里机器人程序中P值的设置存在那里?
- python画蜡烛致敬烈士_Python量化交易-绘制蜡烛图 !这个图不像你的钱哦!
- python两数相加有进退位_Python 之父透露退位隐情,与核心开发团队产生隔阂
- java 生成条形码_Springboot生成二维码,怎么搞?
- 华为8lite支持云闪付吗_2K/120Hz屏?华为P40Pro尊享版价格曝光 | 一加8曝4.15发布
- Vue源码:mustache模板引擎学习