网站前台怎么做,网站设计方案范文,h5制作平台教程,google代理给定一个只包括 ‘(’#xff0c;‘)’#xff0c;‘{’#xff0c;‘}’#xff0c;‘[’#xff0c;‘]’ 的字符串 s #xff0c;判断字符串是否有效。
有效字符串需满足#xff1a;
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都…给定一个只包括 ‘(’‘)’‘{’‘}’‘[’‘]’ 的字符串 s 判断字符串是否有效。
有效字符串需满足
左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。
示例 1
输入s “()” 输出true 示例 2
输入s “()[]{}” 输出true 示例 3
输入s “(]” 输出false
提示
1 s.length 104 s 仅由括号 ‘()[]{}’ 组成
遍历一遍s如果是左括号就入栈如果是右括号那么栈顶元素必定是与之匹配的左括号
func isValid(s string) bool {stack : []byte{}parentheseMap : map[byte]byte{): (,}: {,]: [,}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] ! parentheseMap[s[i]] {return false}stack stack[:len(stack)-1]}}return len(stack) 0
}如果是输入字符串长度为n此算法时间复杂度为O(n)空间复杂度为O(1)。