2.给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足:(1)左括号必须用相同类型的右括号闭合。(2)左括号必须以正确的顺序闭合。(3)每个右括号都有一个对应的相同类型的左括号。
时间: 2024-01-31 16:58:15 浏览: 57
思路:
使用栈来解决问题,遍历字符串,如果遇到左括号,将其入栈,如果遇到右括号,判断栈顶元素是否与其匹配,如果匹配则弹出栈顶元素,否则返回 False。最后,如果栈为空,则表示字符串有效。
代码实现:
class Solution:
def isValid(self, s: str) -> bool:
stack = []
for c in s:
if c in ['(', '[', '{']:
stack.append(c)
else:
if not stack:
return False
if c == ')' and stack[-1] == '(':
stack.pop()
elif c == ']' and stack[-1] == '[':
stack.pop()
elif c == '}' and stack[-1] == '{':
stack.pop()
else:
return False
return not stack
相关问题
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括号。
示例 1:
输入: s = "()"
输出: true
示例 2:
输入: s = "()[]{}"
输出: true
示例 3:
输入: s = "(]"
输出: false
示例 4:
输入: s = "([)]"
输出: false
示例 5:
输入: s = "{[]}"
输出: true
提示:
1 <= s.length <= 104
s 仅由括号 '()[]{}' 组成
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses
给定一个只包括‘(’, ‘)’, ’{‘, ‘}’, ‘[’, ’]”的字符串 s , 判断字符串是否合法。
给定一个只包括‘(’, ‘)’, ’{‘, ‘}’, ‘[’, ’]”的字符串 s,判断字符串是否合法的方法是使用栈来进行匹配。遍历字符串s,当遇到左括号时,将其入栈;当遇到右括号时,判断栈顶元素是否与当前右括号匹配,如果匹配则将栈顶元素出栈,否则返回false。最后,如果栈为空,则说明字符串合法,否则返回false。
以下是判断字符串是否合法的示例代码:
```python
def isValid(s):
stack = []
mapping = {')': '(', '}': '{', ']': '['}
for char in s:
if char in mapping:
if not stack or stack[-1] != mapping[char]:
return False
stack.pop()
else:
stack.append(char)
return not stack
s = input("请输入字符串:")
if isValid(s):
print("字符串合法")
else:
print("字符串不合法")
```
阅读全文