题目:
clipboard.png
Given a string containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.

The brackets must close in the correct order, "()" and "()[]{}" are all valid but "(]" and "([)]" are not.

这个题我的解法是超越所有人的...这是我JavaScript运行速度的图:

clipboard.png

超越最快的一小截哈哈哈哈,并且我的解法很简单.
我的方法优点在于没有使用js的库.下面就是解法

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    let stack = []; 
    let len = 0;    //  尽量把变量命名为let
    let arr = s.split('');  //  这样写读取比在string里读快
    
    for (let i = 0; i < arr.length; i++) {
        let str = arr[i];
        switch (str) {
            case '(':
                stack[len] = str;
                len++;
                break;
            case '[':
                stack[len] = str;
                len++;
                break;
            case '{':
                stack[len] = str;
                len++;
                break;
            case ')':
                if (stack[len-1] == '(')
                    len--;
                else
                    return false;
                break;
            case ']':
                if (stack[len-1] == '[')
                    len--;
                else
                    return false;
                break;
            case '}':
                if (stack[len-1] == '{')
                    len--;
                else
                    return false;
                break;
        }
    }
        
    if (len == 0)
        return true;
    else
        return false;
};

Mystery_Wen
12 声望1 粉丝