1040 Longest Symmetric String (25 分)
阿新 • • 發佈:2018-12-15
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
一沾上字串,是個人就會聯想上動規!恰巧我不會動規!很不幸的一件事!
但還有種別的思路就是開遍歷掃一遍,反正浙大的測評機也是比較和藹的
#include<iostream> #include<string> using namespace std; bool compare(string &str,int s,int len) { int i,j,k; for(i=s;i<len/2+s;i++) { if(str[i]!=str[s+len-(i-s)-1]) return false; } return true; } int main() { string str; getline(cin,str); int maxlen=1; int i,j,k; for(i=0;i<str.size();i++) { for(j=1;j<=str.size()-i;j++) { if(compare(str,i,j)&&j>maxlen) maxlen=j; } } cout<<maxlen<<endl; return 0; }