1. 程式人生 > >前端演算法:由於只包含字元的字串'(',')','{','}','['和']',確定輸入字串是有效的

前端演算法:由於只包含字元的字串'(',')','{','}','['和']',確定輸入字串是有效的

由於只包含字元的字串’(’,’)’,’{’,’}’,’[‘和’]’,確定輸入字串是有效的。
如果輸入字串有效:
必須使用相同型別的括號關閉左括號。
必須以正確的順序關閉左括號。
請注意,空字串也被視為有效。

例1:
輸入: “()”
輸出: true

例2:
輸入: “()[] {}”
輸出: true

例3:
輸入: “(]”
輸出: false

例4:
輸入: “([]]”
輸出: false

例5:
輸入: “{[]}”
輸出: true
<script>
var map = {
    "(": ")",
    "[": "]",
    "{": "}"
} 
var isValid = function(s) {
    var stack = [];
    for (var i = 0; i < s.length; i++) {
        var el = s[i];
        if (map[el]) {
            stack.push(map[el]);
        } else {
            if (el !== stack.pop()) {
                return false;
            }
        }
    }
    return stack.length === 0;
};
console.log(isValid('(1)'));
</script>