台州网站建设公司,王通seo赚钱培训,网页设计基础课程设计问题反馈,建设部网站投诉核查题面
分析 s s s的范围很小#xff0c;可以 O ( n 2 ) O(n^2) O(n2)#xff0c;在规定复杂度以内来完成枚举所有子串判断是否有满足条件的最大的子串#xff0c;可以在第一层循环枚举子串长度 d d d#xff0c;第二层循环枚举左右端点#xff0c;通过双指针维护区间。对长…题面
分析 s s s的范围很小可以 O ( n 2 ) O(n^2) O(n2)在规定复杂度以内来完成枚举所有子串判断是否有满足条件的最大的子串可以在第一层循环枚举子串长度 d d d第二层循环枚举左右端点通过双指针维护区间。对长度取最大值。
代码
#include bits/stdc.husing namespace std;
using ll long long;void solve() {string s;cin s;int ans 0;int cnt 0;int n s.size();for(int d 1; d n; d ) {cnt 0;for(int i 0, j 0; i d n; i ) {cnt (s[i] s[i d] || s[i] ? || s[i d] ?);while(i - j 1 d j d n) {cnt - (s[j] s[j d] || s[j] ? || s[j d] ?);j ;}if(cnt d) {ans max(ans, d * 2);break;}}}cout ans \n;
}int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int T;cin T;while(T --) {solve();}
}