LeetCode: Valid Parentheses



この問題解アルゴリズムは本当に何度も
基本的にはこの問題ですが、ここでも応用できます.
まずstackで解きましたが、
HashMapを使用すると、より短いコードを記述できますが、if文のみが記述されます.

問題を解く


falseに戻る場合について書きました.
import java.util.*;
class Solution {
    public boolean isValid(String str) {
        Stack<Character> s = new Stack<>();
        for(int index = 0; index < str.length(); index++) {
            char temp = str.charAt(index);
            if(s.isEmpty()) {
                if(temp == ')' || temp == '}' || temp == ']') {
                    return false;
                }
                s.add(temp);
            }
            else {
                if(temp == ')') {
                    if(s.peek() != '(') {
                        return false;
                    }
                    s.pop();
                    continue;
                }
                else if(temp == '}') {
                    if(s.peek() != '{') {
                        return false;
                    }
                    s.pop();
                    continue;
                }
                else if (temp == ']') {
                    if(s.peek() != '[') {
                        return false;
                    }
                    s.pop();
                    continue;
                }
                s.add(temp);
            }
        }
                   
        if(!s.isEmpty()) {
            return false;
        }
        return true;
    }
}