描述
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
- 左括号必须用相同类型的右括号闭合。
-
左括号必须以正确的顺序闭合。
//思想就是利用栈的思维
func isMyValid(_ str: String)-> Bool {
//定义好验证的括号类型
//注意点就是将括号的右半部分设置为字典Key的巧妙之处
let str_map = [")":"(","]":"[","}":"{"]
var stack: [String] = []
for c in str {
if str_map.values.contains(c.description) {
stack.append(c.description)
}else if (str_map[c.description] != stack.popLast()) {
return false
}
}
return stack.count == 0
}
网友评论