leetcode刷题 —第20题判断字符串有效的括号

题目描述

给定一个只包括 ‘(‘,’)’,'{‘,’}’,'[‘,’]’ 的字符串 s ,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。

有效的括号
有效的括号
func isValid(s string) bool {
    //判断字符串长度
    length:=len(s)
    //如果长度为奇数则不可能有效,直接返回false
    if length%2!=0{
        return false
    }
    for true {
        //统计字符串目前有多少对有效的括号
        num:=strings.Count(s,"()")+strings.Count(s,"[]")+strings.Count(s,"{}")
        if num==0{
            break
        }else if num == length/2{
            //如果有效括号是长度的一半则直接为有效字符串
            return true
        }
        //将有效的括号替换,继续判断
        s = strings.ReplaceAll(s,"()","")
        s = strings.ReplaceAll(s,"[]","")
        s = strings.ReplaceAll(s,"{}","")
    }
    //如果替换结束后长度为0则为有效,长度不为0时,则表示字符串中还有不能替换的括号。
    return len(s)==0
}

关注收藏来一波,一起进步哦!