Leetcode第20题 有效的括号
    思路
    利用栈结构,遇到左括号入栈,遇到右括号时将对应栈顶左括号出栈,则遍历完所有括号后 stack 仍然为空;

    1. /**
    2. * @param {string} s
    3. * @return {boolean}
    4. */
    5. var isValid = function(s) {
    6. const n = s.length;
    7. if (n % 2 === 1) {
    8. return false;
    9. }
    10. const pairs = new Map([
    11. [')', '('],
    12. [']', '['],
    13. ['}', '{']
    14. ]);
    15. const stk = [];
    16. for (let ch of s){
    17. if (pairs.has(ch)) {
    18. if (!stk.length || stk[stk.length - 1] !== pairs.get(ch)) {
    19. return false;
    20. }
    21. stk.pop();
    22. }
    23. else {
    24. stk.push(ch);
    25. }
    26. };
    27. return !stk.length;
    28. };