题解:ABC320B - Longest Palindrome
·题目
链接:Atcoder。
链接:洛谷。
·难度
算法难度:C。
思维难度:C。
调码难度:C。
综合评价:入门。
·算法
字符串处理。
·思路
通过双层循环分别枚举第一个字符和最后一个字符遍历每个子串,在分别判断是否为回文串,在所有是回文串的里面取长度最大值。
·代价
O(|s|2)。
·细节
字符串截取用substr函数。文章来源:https://www.toymoban.com/news/detail-732914.html
·代码
#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的第二个参数是字符串长度,不是末尾元素编号。文章来源地址https://www.toymoban.com/news/detail-732914.html
到了这里,关于题解:ABC320B - Longest Palindrome的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!