[アルゴリズム]白駿-鉄棒


白駿鉄棒

説明する

sentence = input()
count  = 0
stack = []

for i in range(len(sentence)):
    if sentence[i] == "(":
        stack.append("(")
    else:
        if sentence[i-1] == "(":
            stack.pop()
            count += len(stack)
        else:
            stack.pop()
            count += 1

print(count)
初めて見たとき、スタックをどのように適用すればいいか思い出せませんでした.スタック問題がスタックを直感的に使うとは思わなかった問題が多いようです.")が表示されている場合は、"("が表示される前にレーザーでカットし、""でなければ鉄棒が終了する場所です.したがって、カットする場合はスタック内の鉄棒の数を加算するだけで、鉄棒が終了する場合は数を加算するだけです.