前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据结构与算法:最长的回文子串

数据结构与算法:最长的回文子串

作者头像
程序员小王
发布2021-08-13 10:36:56
2660
发布2021-08-13 10:36:56
举报
文章被收录于专栏:架构说

给你一个字符串 s,找到 s 中最长的回文子串

解题思路

代码

代码语言:javascript
复制
class Solution {
public:
    string longestPalindrome(string s) {
       
       int indexBegin =0;
       int indeEnd =0;
       int  n = s.size();

       //Palindrome

       //01 
      vector<vector<bool>> dp(n,vector<bool>(n,false)); //dp[start][end]  N>end >=start 


      //02 [aaa] 
      //[aaa] 
      //[aa]
      //[a]
      //if: s[start ] =s[end]  && 
      // /dp[start][end] = dp[start+1][end-1](一定存在) , end -1 >=start +1  

      //03 
       for(int end =0; end <n;end++)
       {
           for( int start =0; start <= end; start++)
           {
                 if (s[start] ==s[end])
                 {   //case1 
                     if(end -start >=2)
                     {
                          dp[start][end] = dp[start+1][end-1];
                     }else
                     {
                         //case2  i[0 -]
                         dp[start][end]  = true;
                     }
                 }
                  //回文子串 --最长的
                 if( dp[start][end]  == true && end-start > indeEnd- indexBegin )
                 {
                     indexBegin = start;
                     indeEnd = end;
                 }
           }
       }

       return s.substr(indexBegin,indeEnd-indexBegin+1);
    }
};
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Offer多多 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解题思路
  • 代码
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档