有没有专门找装修公司的网站查网站排名
题解:ABC320B - Longest Palindrome
·题目
链接:Atcoder。
链接:洛谷。
·难度
算法难度:C。
思维难度:C。
调码难度:C。
综合评价:入门。
·算法
字符串处理。
·思路
通过双层循环分别枚举第一个字符和最后一个字符遍历每个子串,在分别判断是否为回文串,在所有是回文串的里面取长度最大值。
·代价
O(|s|2)。
·细节
字符串截取用substr函数。
·代码
#include<bits/stdc++.h>
using namespace std;
string s="";
int ans=0;
int main(){cin>>s;int l=s.size();s=" "+s;//将字符串处理成以1开始给下标编号的for(int i=1;i<=l;i++){for(int j=i;j<=l;j++){string t=s.substr(i,j-i+1);//遍历每个子串string u=t;reverse(t.begin(),t.end());//u是原串,t是翻转之后的if(t==u){//如果翻转前和翻转后的串相同就是回文串ans=max(ans,j-i+1);//长度取MAX}}}printf("%d\n",ans);return 0;
}
·注意
substr的第二个参数是字符串长度,不是末尾元素编号。