diff --git "a/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\345\220\210\346\263\225\346\213\254\345\217\267\345\210\244\345\256\232.md" "b/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\345\220\210\346\263\225\346\213\254\345\217\267\345\210\244\345\256\232.md" index a7e42631bfbc45a25f5a8eb4494219f416c42425..f56d9fb1cd7d306fe7ee86df71c821c310b18424 100644 --- "a/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\345\220\210\346\263\225\346\213\254\345\217\267\345\210\244\345\256\232.md" +++ "b/\351\253\230\351\242\221\351\235\242\350\257\225\347\263\273\345\210\227/\345\220\210\346\263\225\346\213\254\345\217\267\345\210\244\345\256\232.md" @@ -97,11 +97,29 @@ private char leftOf(char c) { } ``` -[李四](any_link_you_want) 提供 Python3 代码: +[kalok87](https://github.com/kalok87) 提供 Python3 代码: ```python -def isValid(str): - # ... +def isValid(self, s: str): + left = [] # 定义一个左栈,记录所有的左括号 + match = {'}':'{', ']':'[', ')':'('} # 定义一个字典,检查当前str是否是右括号 + right = {'}', ']', ')'} # 定义一个右括号集合,方便快速检查 + + # 进行循环,如果当前str是左括号,则入栈;如果是右括号,则检查左栈的最后一个元素是不是 + # 与其对应。 + for x in s: + if x in right: + if len(left) == 0 or match[x] != left[-1]: + return(False) # 如果对应的左栈元素不符(括号种类不同或左栈为空),返回False + else: + left.pop() # 移除左栈最顶端的元素 + else: + left.append(x) # 当前str是左括号,入左栈 + + if len(left) == 0: + return(True) # 如果左栈为空(左右括号数相等),返回True + else: + return(False) ```