ペアリングの削除[プログラマ]

5079 ワード

質問する


https://programmers.co.kr/learn/courses/30/lessons/12973

アルゴリズム#アルゴリズム#


スタック

に答える


まず、同じ文字が現れるまでスタックに最初の文字を入れ、スタックに文字を積み重ね続けます.
2つの連続する文字が表示された場合は、削除して比較を続行します.
文字列の末尾に比較し、スタックが空の場合は1または0を返します.

コード#コード#

import java.util.*;

class Solution
{
    public int solution(String s)
    {
        int answer = -1;
        Stack<Character> stack = new Stack<>();

        for (int i = 0; i < s.length(); i++) {
            if (!stack.isEmpty() && s.charAt(i) == stack.peek()) {
                stack.pop();
            } else {
                stack.push(s.charAt(i));
            }
        }

        if (stack.isEmpty()) {
            answer = 1;
        } else {
            answer = 0;
        }

        return answer;
    }
}