fox の文字が全て異なっているので楽. s を先頭から調べていき,スタックに積んでいく. スタックの方で後ろ3文字がfoxになったら消せばよい. O(N)で解ける. 実装は,スタックでなくvector で行った.
使っている記号,マクロ等 "https://ecsmtlir.hatenablog.com/entry/2022/12/23/131925"
int main() {
ll n;
cin >> n;
string s; cin >> s;
string t;
rep(i,n){
t.push_back(s[i]);
ll x = t.length();
if(x >= 3 && t.substr(x-3, 3) == "fox"){
t.erase(t.end()-3, t.end());
}
}
cout << t.length() << endl;
return 0;
}