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
}

浙公网安备 33010602011771号