PAT甲级 1040
题目 Longest Symmetric String
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.
解析
最长回文
代码
#include<bits/stdc++.h>
#define INF 1<<29
using namespace std;
void pat1040() {
string str;
getline(cin, str);
int max = 1;
for (int i = 0; i < str.size(); ++i) {
for (int j = str.size(); j > i; --j) {
string temp = str.substr(i, j);
if (temp.size() > max && temp[0] == temp[temp.size()-1]) {
reverse(temp.begin(), temp.end());
if (temp == str.substr(i, j)) {
max = temp.size();
}
}
}
}
cout << max << endl;
}
int main() {
pat1040();
return 0;
}