题解 | #最长回文子串#

最长回文子串

http://www.nowcoder.com/practice/12e081cd10ee4794a2bd70c7d68f5507

图片说明

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int getLongestPalindrome (string s)
{   


    int length =0;
    int n =s.size();
    //space:
    vector<vector<bool>> dp(n,vector<bool>(n,false));

    for( int end  =0;end <n;end++)
    {
        for( int start =0; start <=end;start++)
        {
            if (s[start] == s[end])
            {    
                if (end -start <2 )
                {
                     // 每个子串 100%是回文。[a] [aa] [aba]
                     dp[start][end] =true;
                }else
                {
                     dp[start][end] =  dp[start+1][end-1]; 
                }

                //双指针 end-1 >=start+1  end -start >=2

            }else
            {
                dp[start][end] = false; //[a?b]
            }

            if ( true == dp[start][end]  && end -start +1 > length)
            {
                length = end -start +1;
            }
        }
    }

    return length;

}


int main()
{
  string s;
  while(cin>>s)
  {
      cout << getLongestPalindrome(s)<<endl;
  }
}
全部评论

相关推荐

09-12 12:09
郑州大学 Java
有啥题目啊?
投递小红书等公司10个岗位
点赞 评论 收藏
分享
阿武同学:不要写至今,写具体哪年哪月毕业,专业技能往后排,项目往前排,共青团员可以不写
投了多少份简历才上岸
点赞 评论 收藏
分享
珩珺:那些经历都太大太空了,实习的情况不了解,大创项目连名字、背景、目的及意义都没体现出来;地摊经济更是看完连卖的什么产品都不知道,项目成果直接写营收多少都更直观真实一点;后面那个校文体部的更是工作内容是组织活动整理流程,成果变成了当志愿者,而且你们学校本科学生会大一入学就直接当部长吗,志愿里面还提到了疫情防控,全面解封是22年12月的事情,可能时间上也有冲突。可能你花了钱人家就用AI给你随便写了点内容改了一下,没什么体现个性化的点
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务