|
发表于 2021-6-15 09:01:47
|
显示全部楼层
本楼为最佳答案
参考代码:
- 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([i for i in data if i in "()[]{}"])
- 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}[%(^[z]{u}{ })([[ ]-]h)]{c}(*)[y]}"
- print(isRight(in_data))
复制代码 |
|