Python3 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

题目:

给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。

有效字符串需满足:

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。
注意空字符串可被认为是有效字符串。

示例 1:

输入: "()"
输出: true

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-parentheses
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

代码:

class Solution:
    def isValid(self, s: str) -> bool:
        
        len_s=len(s)
        if len_s%2 !=0:
            return False
        if len_s==0:
            return True
        #利用进栈出栈的思想
        str_dict={'(':')','[':']','{':'}'}
        stacked=[]
        for i in range(len_s):
            #判断stacked是否为空,以及stacked的最后一个元素是否存在于字典的关键字之中
            #判断字符串中的下一个字符是否与stacked中存储的最后一个元素相等,相等则删除stacked中的最后一个元素
            #不相等则存入stacked之中,用于接下来的判断
            if stacked and stacked[-1] in str_dict.keys() and s[i]==str_dict[stacked[-1]]:
                stacked.pop()
            else:
                stacked.append(s[i])
        #若输入为有效字符串则最终stacked中的左右元素将会被完全删除
        if stacked==[]:
            return True
        else:
            return False
                

 

你可能感兴趣的:(Python3 给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。)