本文主要是介绍【PAT】【Advanced Level】1040. Longest Symmetric String (25),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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
https://www.patest.cn/contests/pat-a-practise/1040
思路:
循环一遍分别判断单数、双数的情况即可
CODE:
#include<iostream>
#include<cstring>
#include<string>
#include<cstdio>
using namespace std;int main()
{string str;getline(cin,str);int ma=1;for (int i=0;i<str.length()-1;i++){if (str[i]==str[i+1]){int t=0;while (i-t>=0&&i+t+1<str.length()){if (str[i-t]!=str[i+1+t]) break;t++;}ma=max(2*t,ma);}int tt=0;while (i-1-tt>=0 && i+tt+1<str.length()){if (str[i-1-tt]!=str[i+1+tt]) break;tt++;}ma=max(ma,1+tt*2);}cout<<ma<<endl;return 0;
}
这篇关于【PAT】【Advanced Level】1040. Longest Symmetric String (25)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!