在美国建设网站seo搜索是什么
L2-008 最长对称子串 - 团体程序设计天梯赛-练习集
解题反思
//防惯性:长度的最小值不是0,而是1!
对称问题不止可以用stack!从一点出发初步判断(与后一个相同或者后面第二个相同,则由此向两边展开继续判断)
代码实现
//防惯性:长度的最小值不是0,而是1!
#include<bits/stdc++.h>
using namespace std;int main()
{string str;getline(cin, str);if(str.length() == 1){cout<<"1"<<endl;return 0;}int max_len = 1;auto dfs = [&](auto& dfs, int fir_cur, int lst_cur, int pre_len) -> void{if(str[fir_cur] == str[lst_cur]) pre_len+=2;else return;max_len = max(max_len, pre_len);if(fir_cur-1>=0 && pre_len+1<str.length()) dfs(dfs, fir_cur-1, lst_cur+1, pre_len);return;};for(int i=0; i<str.length(); i++){if(i+1< str.length() && str[i] == str[i+1]){dfs(dfs, i, i+1, 0);}if(i+2< str.length() && str[i] == str[i+2]){dfs(dfs, i, i+2, 1);}}cout<<max_len<<endl;
}