Given a string,you are supposed to output the length of the longest symmetric sub-string. For example,given Is PAT&TAP symmetric?
,the longest symmetric sub-string is s PAT&TAP s
,hence you must output 11
.
Each input file contains one test case which gives a non-empty string of length no more than 1000.
Output Specification:For each test case,simply print the maximum length in a line.
Sample input:Is PAT&TAP symmetric?Sample Output:
11
题意:
输入一个字符串,求该字符串中最长对称子串的长度。
题解:
穷举搜索,既要考虑 baab这种偶数类型的,也要考虑abcba这种技术类型的。
AC代码:
#include<iostream>#include<algorithm>#include<vector>#include<queue>#include<map>#include<string>#include<cstring>using namespace std;string a;int main(){ getline(cin,a); int len=a.length(); int mx=1; //先偶数 int r=0,l=1; int k; for(r=0;r<len;r++) { l=r+1; k=0; int rr=r; int ll=l; while(rr>=0&&ll<len&&a[rr]==a[ll]){ k+=2; rr--;lL++; } mx=max(k,mx); } //再奇数 for(r=0;r<len;r++) { l=r+2; k=1; int rr=r; int ll=l; while(rr>=0&&ll<len&&a[rr]==a[ll]){ k+=2; rr--;lL++; } mx=max(k,mx); } cout<<mx<<endl; return 0;}总结
以上是内存溢出为你收集整理的PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历)全部内容,希望文章能够帮你解决PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)