• 读取字符串长度和字符串内容。
  • 从第一个字符开始向后遍历,用一个计数器记录当前满足交替条件的子串长度。
  • 如果当前字符和前一个字符正好是'a'和'h'交替(可以是"ah"也可以是"ha"),就让计数器加1,否则计数器重置为1(因为单独一个'a'或'h'也符合要求)。
  • 在整个过程中,始终记录计数器的最大值,最后输出这个最大值。
  • #include <iostream>
    #include <map>
    #include <vector>
    using namespace std;
    
    int main() {
        int n,ans=0,curlen=1;
        string s;
        cin>>n>>s;
    
        char last = s[0];
        map<char,char> m = {{'a','h'},{'h','a'}};
    
        for(int i=1;i<n;++i){
            curlen=s[i]==m[last]?curlen+1:1;
            ans=max(ans,curlen);
            last=s[i];
        }
        cout<<ans;
    }