Skip to content

Latest commit

 

History

History
34 lines (31 loc) · 854 Bytes

20.md

File metadata and controls

34 lines (31 loc) · 854 Bytes

Valid Parentheses 有效的括号

解法一

在算法题中假如你的编程语言没有基本的数据结构比如stack 自己实现的时候只实现核心部分即可

这个题 只实现的 一个slice即可

func isValid(s string) bool {
    m := make(map[rune]rune)// 辅助map
    m['('],m['{'],m['['] = ')','}',']'
    st := make([]rune,0,len(s))
   for _,v := range s {
        if _,ok := m[v];ok {
            st = append(st,v)
        }else {
            if len(st) == 0 { // 右边比左边多
                return false
            }
            top := st[len(st)-1]
            if v != m[top]{
                return false
            }
            if len(st) >0 {
              st = st[:len(st)-1]   
            }
        }
    }
    if len(st) > 0 { // 左边比右边多
        return false
    }
    return true
}