Leetcode 20. 有效的括号

20. 有效的括号 - 力扣(LeetCode) (leetcode-cn.com)

 

 

思路: 

1.先将符号的对应关系写入到map中。

2.使用slice模拟栈。

3.遍历字符串,如果发现左符号,就将其写入栈中。

4.如果发现右符号,则去判断栈顶是否为对应的左符号。如果是,则将左符号出栈。如果不是,返回false。

5. 遍历结束后,如果栈中还有元素,则返回false,如果没有元素则返回true。

 

func isValid(s string) bool {
    if len(s)%2==1{
        return false
    }
    sMap:=map[byte]byte{
        ')':'(',
        ']':'[',
        '}':'{',
    }
    stack:=make([]byte,0)
    for i:=0;i<len(s);i++{
        if s[i]=='('||s[i]=='['||s[i]=='{'{
           stack = append(stack, s[i])
        }else if len(stack)>0 && stack[len(stack)-1]==sMap[s[i]] {
            stack=stack[:len(stack)-1]
        }else {
            return false
        }
    }
    return len(stack)==0
}

  

posted @ 2022-04-21 10:55  SoutherLea  阅读(16)  评论(0编辑  收藏  举报