|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
看到这样一个问题,要求是:给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。
有效字符串需满足:
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
示例 1:
输入:s = "()"
输出:true
示例 2:
输入:s = "()[]{}"
输出:true
示例 3:
输入:s = "(]"
输出:false
示例 4:
输入:s = "([)]"
输出:false
示例 5:
输入:s = "{[]}"
输出:true
我的代码如下:
- class Solution:
- def isValid(self, s: str) -> bool:
- simple = {'(':')','[':']','{':'}'}
- len_s = len(s)
- if s == '' or len_s % 2 == 1:
- return False
- while s != '':
- if simple[s[0]] == s[-1]:
- s = s.replace(s[0],'')
- s = s.replace(s[-1],'')
- elif simple[s[0]] == s[1]:
- s = s.replace(s[0],'')
- s = s.replace(s[1],'')
- else:
- return False
- break
- return True
复制代码
显示的是执行出错,但是自己实在是看不出有什么问题,请大神帮忙看一下问题在哪里。
给出的题解使用栈的思想解决的,也有点不懂,找到自己代码的问题后,我再学一下用栈的思想解决问题。
if 可以用切片代替呗,if ... s = s[1:-1] else if ... s = s[2:]
左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
"([])[]" 这个括号有什么条件不满足呢? 我感觉好像都符合题目把...
|
|