Official

A - 括弧の深さ / Depth of Parentheses Editorial by kyopro_friends


初心者の方へ


「これまでに登場した ( の個数」「これまでの登場した ) の個数」を管理しながら文字列を先頭から順に見ることで、全ての位置について深さを求めることができます。

実装例 (C++)

#include<bits/stdc++.h>
using namespace std;

int main(){
  string s;
  cin >> s;

  int ans = 0, hiraku = 0, tojiru = 0;
  for(char c: s){
    if(c == '('){
      hiraku++;
    }else{
      tojiru++;
    }
    ans = max(ans, hiraku - tojiru);
  }
  cout << ans << endl;
}

実装例 (Python)

S = input()
ans = 0
hiraku = 0
tojiru = 0
for c in S:
  if c == '(':
    hiraku += 1
  else:
    tojiru += 1
  ans = max(ans, hiraku - tojiru)

print(ans)

posted:
last update: