Codeforces Round #442 (Div. 2) B. Nikita and string
题意:给一个字符串,问形如a……a/ /b……b/ /a……a的子串最大长度
题解:设三个状态a,ab,aba分别表示对应长度。因为每段长度可以为0,所以后一个状态的包含前一个状态。每次更新最大长度,最终的aba即为答案
1 #include <bits/stdc++.h> 2 using namespace std; 3 char str[5050]; 4 int main() 5 { 6 cin>>str; 7 int len=strlen(str); 8 int a,ab,aba; 9 a=ab=aba=0; 10 for(int i=0;i<len;i++) 11 { 12 if(str[i]=='a') 13 a++,aba++; 14 else 15 ab++; 16 ab=max(a,ab); 17 aba=max(ab,aba); 18 } 19 cout<<aba<<endl; 20 }