python小作业
【问题描述】假设一个输入字符串中包含圆括号、方括号和花括号三种类型的括号,以及其它一些任意字符。编写程序,判别字符串串中的括号是否正确匹配,即:
1. 各种左、右括号的个数要一致;
2. 要符合正确的嵌套规则。
【输入形式】
输入一个含各种括号的字符串
【输出形式】
能正确匹配输出True,反之输出False
【样例输入】
[/]{((x)({{*}*}w)w){f}{v}[%(^{u}{ })([[ ]-]h)]{c}(*)}
【样例输出】
True
前面帮你做了一些,真的希望你还是自己先做做,论坛不是来求答案的
你可以在你做题过程中遇到问题,把自己代码和问题贴上来
Twilight6 发表于 2021-6-13 17:07
前面帮你做了一些,真的希望你还是自己先做做,论坛不是来求答案的
你可以在你做题过程中遇到问题, ...
好吧{:10_254:} 参考代码:
def isRight(data: str) -> bool:
# -----------------------------------------
# 以下 4 行代码可有可无,不影响结果,略微提高效率
if (data.count("(") != data.count(")") or
data.count("[") != data.count("]") or
data.count("{") != data.count("}")):
return False
# -----------------------------------------
# 以下为主要核心代码
new_data = "".join({}"])
while True:
if "()" in new_data:
new_data = new_data.replace("()", "")
elif "[]" in new_data:
new_data = new_data.replace("[]", "")
elif "{}" in new_data:
new_data = new_data.replace("{}", "")
else:
break
return False if new_data else True
if __name__ == "__main__":
in_data = "[/]{((x)({{*}*}w)w){f}{v}[%(^{u}{ })([[ ]-]h)]{c}(*)}"
print(isRight(in_data))
页:
[1]