長さNの文字列Sを受け取り、「I」「D」で別の操作を行った結果を出力する問題です。
提出
n = int(input())
s = input()
x = 0
ans = x
for i in range(n):
if s[i] == "I":
x += 1
ans = max(ans, x)
else:
x -= 1
print(ans)
xとans(答え)の変数も作っておき、初期値を代入しておきます。
for文を使って文字列を一つずつ処理していきます。
「I」の場合はxが1増え、「D」の場合は1減ります。
xの値がこれまでの最大値になる可能性があるのは「I」の時のみなので、この時にansとxの大きさを判定し、ansに代入します。
すべての文字列を処理し終えたら、操作中にxがとる値の最大値がansに入っているはずなので、ansを出力します。
max()関数
max()関数は、配列内の最大値を取得します。
max(配列)
【ABC052】解説記事