leetcode题目-有效括号
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
每个右括号都有一个对应的相同类型的左括号。
//go语言实现(使用 栈)
func isValid(s string) bool {
var stack []rune = make([]rune, len(s))
var index int = -1 //栈顶指针
for _, c := range s {
switch c {
case '(':
//入栈
index++
stack[index] = c
case ')':
//出栈
if index < 0 {
return false
}
if stack[index] != '(' {
return false
}
index--
case '[':
//入栈
index++
stack[index] = c
case ']':
//出栈
if index < 0 {
return false
}
if stack[index] != '[' {
return false
}
index--
case '{':
//入栈
index++
stack[index] = c
case '}':
//出栈
if index < 0 {
return false
}
if stack[index] != '{' {
return false
}
index--
}
}
return index == -1
}