Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

20180817 七颗葡萄汇聚 #1

Open
ShaofeiZi opened this issue Aug 18, 2018 · 4 comments
Open

20180817 七颗葡萄汇聚 #1

ShaofeiZi opened this issue Aug 18, 2018 · 4 comments
Labels
周会 每周记录

Comments

@ShaofeiZi
Copy link
Contributor

LeetCode 20题 Valid Parentheses
给一个字符串,包括'(', ')', '{', '}', '[' 和‘]’ 判断是否是正确组成顺序,例如“()”和“(){}[]”是正确的,但是“(]”和"([)]"错误。

@ShaofeiZi ShaofeiZi added the 周会 每周记录 label Aug 18, 2018
@KingJeason
Copy link
Member

KingJeason commented Aug 18, 2018

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
        let map = {
        ')': '(',
        ']': '[',
        '}': '{'
    }
    let stack = []
    for (let i = 0; i < s.length; i++) {
        let c = s[i]
        if (c === '(' || c === '[' || c === '{') {
            stack.push(c)
        } else if (c === ')' || c === ']' || c === '}') {
            if (map[c] === stack[stack.length - 1]) {
                stack.pop()
            } else {
                return false
            }
        }
    }
    return stack.length === 0
}

@liuguangsen0409
Copy link

var isValid = function(s) {
    var i,len = s.length,arr=new Array(),arrlen,tmp;
    if(s%2 == 1)
        return false;
    for(i=0;i<len;i++){
        if(s[i] == "(" || s[i] == "[" || s[i] == "{"){
            arr.push(s[i]);
        }else{
            arrlen = arr.length;
            tmp = arr[arrlen - 1];//表示现在的栈顶元素
            if((tmp == "(" && s[i] == ")") || (tmp == "[" && s[i] == "]") || (tmp == "{" && s[i] == "}")){
                arr.pop();
            }else{
                return false;
            }
        }
    }
    if(arr.length == 0){
        return true;
    }else{
        return false;
    }
};

@gp0320
Copy link

gp0320 commented Aug 20, 2018

var isValid = function(s) {
    let patt = /\(\)|\[\]|\{\}/
    let s2 = s.replace(patt,'')
    if(s2 == s){
        return !s2
    }
    return isValid(s2)
};

@chili-kwh
Copy link

/**
 * @param {string} str
 * @return {boolean}
 */

const PARENTHESIS_MAP = {
    ')': '(',
    ']': '[',
    '}': '{'
}

function isValid(str) {
    let stack = [];
    for (let e of str) {
        switch (e) {
            case ('('): case ('{'): case ('['):
                stack.push(e);
                break;

            case (')'): case ('}'): case (']'):
                if (PARENTHESIS_MAP[e] !== stack.pop()) return false;
                break;

            default:
                break;
        }
    }
    return !stack.length;
}

isValid('[]][');
`

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
周会 每周记录
Projects
None yet
Development

No branches or pull requests

5 participants