问题描述:
对给定的字符串(含空格),输出最长对称子串的长度。
注意点
-
暴力必然拿不了满分;
-
双指针思想
-
对对称子串的奇偶都要讨论
代码
#include <iostream>
#include <algorithm>
using namespace std;
int main(void){
string a;
getline(cin, a);
int l = a.length();
int len = 0;
for(int i = 0; i < l; i ++){
for(int j = 0; i - j >= 0 && i + j < l; j ++){
if(a[i - j] != a[i + j]) break;
if(2 * j + 1 > len) len = 2 * j + 1;
}
for(int j = 0; i - j >= 0 && i + j < l; j ++){
if(a[i - j] != a[i + j + 1]) break;
if(2 * j + 2 > len) len = 2 * j + 2;
}
}
cout << len;
return 0;
}