栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

华为机试85:最长回文子串

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

华为机试85:最长回文子串

描述
给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。所谓回文串,指左右对称的字符串。所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串。(注意:记得加上while处理多个测试用例)
输入描述:输入一个仅包含小写字母的字符串
输出描述:返回最长回文子串的长度
示例1
输入:cdabbacc
输出:4
说明:abba为最长的回文子串

#include
#include
#include
using namespace std;
 
int main()
{
    string str;
    cin>>str;
    vector> arr(str.length()+1,vector(str.length()+1,0));
    
    int maxlen=0;
    for(int i=1;i<=str.length();i++)//i在开头
    {
        for(int j=str.length()-1;j>=0;j--)//j在结尾
        {
            if(str[i-1]==str[j])
            {
                arr[i][j]=arr[i-1][j+1]+1;
                if((i-1)-j+1==arr[i][j])
                    maxlen=max(maxlen,arr[i][j]);
            }
        }
    }
    cout << maxlen << endl;
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/312355.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号