代码拉取完成,页面将自动刷新
/*
* @lc app=leetcode.cn id=20 lang=golang
*
* [20] 有效的括号
*/
// 2-2. stack
// 是左括号就进栈一个右括号
// 不是左括号就比较栈顶元素
// 算是2-1的优化版
// @lc code=start
func isValid(s string) bool {
stack := make([]byte, 0)
for i := 0; i < len(s); i++ {
if s[i] == '(' {
stack = append(stack, ')')
} else if s[i] == '[' {
stack = append(stack, ']')
} else if s[i] == '{' {
stack = append(stack, '}')
} else if len(stack) > 0 && stack[len(stack)-1] == s[i] {
stack = stack[:len(stack)-1]
} else {
return false
}
}
return len(stack) == 0
}
// @lc code=end
// 2-1. stack
// 左括号就入栈
// 右括号就匹配栈顶
// 匹配成功就出栈
// 匹配不上就不符合
// 最后栈空了就符合,不为空就不符合
// @lc code=start
func isValid(s string) bool {
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 s[i] == ')' && len(stack) > 0 && stack[len(stack)-1] == '(' {
stack = stack[:len(stack)-1]
} else if s[i] == ']' && len(stack) > 0 && stack[len(stack)-1] == '[' {
stack = stack[:len(stack)-1]
} else if s[i] == '}' && len(stack) > 0 && stack[len(stack)-1] == '{' {
stack = stack[:len(stack)-1]
} else {
return false
}
}
return len(stack) == 0
}
// @lc code=end
// 1. 暴力,一遍一遍又一遍
// @lc code=start
func isValid(s string) bool {
for true {
l := len(s)
s = strings.Replace(s, "()", "", -1)
s = strings.Replace(s, "[]", "", -1)
s = strings.Replace(s, "{}", "", -1)
if l == len(s) {
break
}
}
return len(s) == 0
}
// @lc code=end
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。