1040. Longest Symmetric String (25)

来源:互联网 发布:linux安装分区方案 编辑:程序博客网 时间:2024/06/02 04:36

为字符串每个字符前后都加一个前导'#',这样可以统一回文串个数奇偶的情况,遍历即可。

#include <iostream>#include <stdio.h>#include <string.h>#include <vector>#include <map>#include <stack>#include <queue>#include <algorithm>#include <set>using namespace std;//1040string s;vector<char> v;int i,j,k,t,ans;int main(){    //freopen("input.txt","r",stdin);    getline(cin,s);    for(i=0;s[i];i++)    {        v.push_back('#');        v.push_back(s[i]);    }    v.push_back('#');    for(i=0;i<v.size();i++)    {        for(j=i-1,k=i+1,t=1;j>=0 && k<v.size();j--,k++)        {            if(v[j]==v[k])            {                t+=2;                if(t>ans)                    ans=t;            }            else                break;        }    }    cout<<ans/2<<endl;    return 0;}


0 0
原创粉丝点击