#include <iostream> #include <stack> using namespace std; stack<char> st; int main() { int n;cin>>n; string s;cin>>s; int cnt=0; for(int j=0;j<s.size();j++){ if(!st.empty()&&st.top()=='a'&&s[j]=='h'){ st.push(s[j]); if(cnt<st.size()){ cnt=st.size(); } continue; }else if(!st.empty()&&st.top()=='h'&&s[j]=='a'){ st.push(s[j]); if(cnt<st.size()){ cnt=st.size(); } continue; }else if(st.empty()){ st.push(s[j]); continue; } else { while(!st.empty()){ st.pop(); } st.push(s[j]); } } if(cnt==0){ int a=s.find('a'); int b=s.find('h'); if(a>=0){ cout<<1; return 0; } if(b>=0){ cout<<1; return 0; } } cout<<cnt; } // 64 位输出请用 printf("%lld")
用栈来做