题解 | #最长回文子串#

最长回文子串

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

#include<iostream>
using namespace std;
int main()
{
    string str;
    while(cin>>str)
    {
        int i=0;
        int len=str.size();
        int maxlen=0;
        while(str[i]!='\0')
        {
            int l=0;
            if(i>0)
            {
                l=i-1;
            }
            int r=i+1;
            if(r<len&&str[i]==str[r])//single
            {
                int temp=2;
                r=r+1;
                while(l>=0&&r<len&&str[l]==str[r])
                {
                    l--;
                    r++;
                    temp+=2;
                }
                if(temp>maxlen)maxlen=temp;
            }
            if(i>0)
            {
                l=i-1;
            }
            r=i+1;
            if(r<len&&str[l]==str[r])//double
            {
                int temp=3;
                l--;
                r++;
                while(l>=0&&r<len&&str[l]==str[r])
                {
                    l--;
                    r++;
                    temp+=2;
                }
                if(temp>maxlen)maxlen=temp;
            }
            i++;
        }
        cout<<maxlen<<endl;
    }
    return 0;
}
全部评论

相关推荐

不愿透露姓名的神秘牛友
06-25 20:45
点赞 评论 收藏
分享
我:“加班需要有加班工资。”&nbsp;hr:“为什么?”&nbsp;哈哈哈哈哈哈哈离大谱
juntenor:你确实太理想化了,对社会不了解呀。这个和HR没有关系,这是国内特色,不然怎么还会有外包就这种逆天的存在呢。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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