博客主页:🏆看看是李XX还是李歘歘 🏆
🌺每天分享一些包括但不限于计算机基础、算法等相关的知识点🌺
💗点关注不迷路,总有一些📖知识点📖是你想要的💗
⛽️今天的内容是Leetcode 20. 有效的括号 ⛽️💻💻💻
给定一个只包括 '('
,')'
,'{'
,'}'
,'['
,']'
的字符串,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
- 左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。
示例 1:
输入: "()"
输出: true
示例 2:
输入: "()[]{}"
输出: true
示例 3:
输入: "(]"
输出: false
示例 4:
输入: "([)]"
输出: false
示例 5:
输入: "{[]}"
输出: true
经典栈解决问题(不可以用append添加,切片声明时就应该定大小)
func isValid(s string) bool {
if s == "" {
return true
}
if len(s)%2!=0 {
return false
}
stack := make([]rune,len(s))
i := 0
for _,value := range s{
switch value {
case '(','[','{':
stack[i] = value
i++
case ')':
if i-1>=0&&stack[i-1] == '('{
i--
}else{
return false
}
case ']':
if i-1>=0&&stack[i-1] == '['{
i--
}else{
return false
}
case '}':
if i-1>=0&&stack[i-1] == '{'{
i--
}else{
return false
}
}
}
if i==0 {
return true
}else {
return false
}
}