PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历)

PAT 甲级 1040 Longest Symmetric String (25 分)(字符串最长对称字串,遍历),第1张

概述1040 Longest Symmetric String (25 分)   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-st 1040 Longest Symmetric String (25 分)  

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.

input Specification:

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 分)(字符串最长对称字串,遍历)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/1024400.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存