jessie_jt 2022-10-22 20:22 采纳率: 75%
浏览 99
已结题

需要找出s中最长回文字串

【题目描述】
给定一个字符串s,找到s中的最长回文子串(Longest Palindromic Substring,LPS);
若有多个结果,请输出字典序最小的LPS。

【输入格式】
一行,字符串s

【输出格式】
一行,表示最长回文子串

【数据范围】
对于100%的数据:1<=|s|<=5000,且s仅仅含有小写字母

【样例输入1】
baacaaba
【样例输出1】
baacaab
【样例解释1】
最长回文子串为baacaab

  • 写回答

2条回答 默认 最新

  • 快乐鹦鹉 2022-10-22 21:23
    关注
    #include<iostream>
    using namespace std;
    #include <string>
    
    bool IsReturnNumber(const string& str,int start,int end)
    {
        while(start < end)
        {
            if(str[start++] != str[end--])
                return false;
        }
        return true;
    }
    
    
    string longestPalindrome(string s) {
        string res;
        res.push_back(s[0]);
        int start = 0,end = s.length() - 1;
    
        for(int i = 0;i < s.length();i++)
        {
            for(int j = i + 1;j < s.length();j++)
            {
                if(IsReturnNumber(s,i,j) )
                {
                    if(j - i + 1 > res.length())
                        res = string(s.begin() + i, s.begin() + j + 1);
                    else if(j-i+1 == res.length())
                    {
                        string r = string(s.begin() + i, s.begin() + j + 1);
                        if(r<res)
                            res = r;
                    }
                }
            }
        }
        return res;
    }
    
    int main()
    {
        string s;
        cin>>s;
        cout<<longestPalindrome(s);
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 10月30日
  • 已采纳回答 10月22日
  • 创建了问题 10月22日

悬赏问题

  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥170 如图所示配置eNSP
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改
  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上