ABC-307
A
解法
B
解法
C
https://atcoder.jp/contests/abc307/tasks/abc307_d
#文字列操作 #stack
N = Integer().content S = Word().content
string = [] left = []
for i in range(N): string.append(S[i]) if S[i]=='(': left.append(len(string)-1) elif S[i]==')' and left: q = left.pop() for j in range(len(string)-q): string.pop() print("".join(string))
解法
空の文字列に文字ずつ格納していき、’)‘が出てきたら、直前の’(‘(あれば)まで格納した文字を削除、ないのならば文字列に格納する。 を繰り返すと題意を満たすことができる。 …のだが、ここで’(‘の位置を格納するstackを保持しておくと、’(‘があるのかないのかをで判断することができる。
D
解法
E