LV 2ペアリングの削除

817 ワード

質問する


ペアリングを削除するには、アルファベット小文字の文字列で開始します.まず、文字列内で同じ文字を2つ持つペアを検索します.次に、この2つの文字列を削除し、前後に文字列を接続します.この手順を繰り返してすべての文字列を削除すると、ペアリングの削除が終了します.文字列Sが指定されている場合は、ペアリングを正常に削除できるかどうかを返す戻り関数を完了します.成功した場合は1を返し、そうでない場合は0を返します.
例えば、文字列S = baabaab aa baa → bb aa → aa →すべての文字列を中の順序で削除できるため、1を返します.
せいげんじょうけん
  • 文字列長:100000以下の自然数
  • 文字列はすべて小文字で構成されています.
  • I/O例
    sresultbaabaa1cdcd0
    I/O例説明
    I/O例#1
    上記の例のように.
    I/O例#2
    0を返します.文字列はまだ存在しますが、ペアリングで削除できる文字列は存在しません.

    に答える


    スタックを使用してクリアします.

    コード#コード#

    def solution(s):
        stack = [s[0]]
        for t in s[1:]:
            if stack and stack[-1] == t:
                stack.pop()
            else:
                stack.append(t)
        return len(stack) == 0 and 1 or 0