题目描述

给定一个字符串 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。相关推荐

  1. java 求最长重复子串_给定一个字符串,求出其最长的重复子串。

    #include #include #include #include using namespace std; //给定一个字符串,求出其最长的重复子串 //方法一 string lsubstr_1 ...

  2. Java中找出s字符串的回文_给定一个字符串 s,找到 s 中最长的回文子串。

    题目描述:给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 思路: 判断s[i..j]是否是回文字符串,依赖于s[i+1...j-1],这种一个问题的结果依赖于 ...

  3. 字符串:1.给定一个字符串s,分割s使得s的每一个子串都是回文串

    给定一个字符串s,分割s使得s的每一个子串都是回文串 返回所有的回文分割结果.(注意:返回结果的顺序需要和输入字符串中的字母顺序一致.) 例如:给定字符串s="aab", 返回 [ ...

  4. 算法题——给你一个字符串s,找到s中最长的回文子串。

    一.给你一个字符串 s,找到 s 中最长的回文子串. 示例 1: 输入:s = "babad" 输出:"bab" 解释:"aba" 同样是符 ...

  5. 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?

    给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串.如何删除才能使得回文串最长呢? 输出需要删除的字符个数. 输入描述: 输入数据有多组,每组包含一个字符串s,且保证:1<=s. ...

  6. python练习题:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度

    题目: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 题目解析: 有一个字符串,长度不定, 要找出不重复字符串的长度,我们可以这么假设,先找到第一个下标,然后从后面拿到元素的下标对 ...

  7. (java)给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。

    给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. public class LengthOfLongestSubstring {public int lengthOfLonges ...

  8. 【每日一练及解题思路V1】给定一个字符串,找出其中不含重复字符的最长子串的长度

    一.题目:给定一个字符串,找出其中不含重复字符的最长子串的长度: 二.举例: 比如"abcdefgh",不含重复字符的最长子串为eacdb,长度为8: 比如"abceac ...

  9. 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度

    题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 &q ...

  10. 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。

    给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "ab ...

最新文章

  1. 《数据中心布线系统的设计与施工技术白皮书》目录
  2. java ehcahce刷新_springboot结合ehcache防止恶意刷新请求的实现
  3. C/C 代码规范注释有哪些讲究?
  4. vue v html安全,vue 中控制v-html 中的样式,但不影响全局的小技巧
  5. java semaphore 等待_Java并发编程系列之Semaphore详解
  6. can't request region for resource [mem 0xfed40080-0xfed40fff]问题的解决办法
  7. 怎么查看计算机的系统内存大小,Windows10系统怎么查看电脑内存大小
  8. mysql分区表优缺点,Mysql 表分区和性能
  9. Spring学习(六)
  10. 牛逼,个人开发者可以申请微信支付了!
  11. 抗疫先锋 | IBM:同心抗疫,重塑未来 - emerge smarter!
  12. [JS jQuery项目]仿网易云音乐项目问题摘要
  13. 计算机C语言好学吗?要是想自学应该怎么办?大学挂科赶紧恶补!
  14. idea火箭_火箭的大脑
  15. 写给运维新手的十一条 Docker 守则,牢记!
  16. 易基因 - 重磅!2021最新SCI影响因子发布,国内期刊TOP10出炉
  17. JavaScript 个人笔记3(详细BOMDOM)
  18. MATLAB遗传算法求解超市物流配送选址问题实例
  19. SQL注入【二】——MYSQL注入的基本流程
  20. “操作系统的「冷板凳」要坐多久?”长文解读16年开源人的坚持

热门文章

  1. 讯为开发板的最小LINUX系统烧写及U盘的挂载及卸载
  2. android 引用 project以及下拉刷新开源类库Android-PullToRefresh 的使用
  3. AOP(execution表达式)
  4. jpython 传入参数_C++嵌入Python程序(二):参数传入及返回
  5. html中rowspan设置动态值_大众标准里机器人程序中P值的设置存在那里?
  6. python画蜡烛致敬烈士_Python量化交易-绘制蜡烛图 !这个图不像你的钱哦!
  7. python两数相加有进退位_Python 之父透露退位隐情,与核心开发团队产生隔阂
  8. java 生成条形码_Springboot生成二维码,怎么搞?
  9. 华为8lite支持云闪付吗_2K/120Hz屏?华为P40Pro尊享版价格曝光 | 一加8曝4.15发布
  10. Vue源码:mustache模板引擎学习