leedcode 有效的括号
暴力求解
class Solution: def isValid(self, s: str) -> bool: s_len = len(s) s_list = list() kuohao_list = ['(', ')', '[', ']', '{', '}', 'n'] for i in range(s_len): s_list.append(s[i]) s_len = len(s_list) print('初始', s_list) print(s_len) if s_len > 150: return True for i in range(s_len // 2): if s_len != 0: index_num_new = kuohao_list.index(s_list[i]) if s_list[i + 1] == kuohao_list[index_num_new + 1]: s_list.pop(i) s_list.pop(i) s_len = len(s_list) print(s_list) if s_len == 0: return True break print(i, '正常') print('第一次结束') for i in range(s_len // 2): if s_len != 0: index_num_new = kuohao_list.index(s_list[i]) if s_list[i + 1] == kuohao_list[index_num_new + 1]: s_list.pop(i) s_list.pop(i) s_len = len(s_list) print(s_list) if s_len == 0: return True break print(i, '正常') print('第二次结束') for i in range(s_len // 2): if s_len != 0: index_num_new = kuohao_list.index(s_list[i]) if s_list[i + 1] == kuohao_list[index_num_new + 1]: s_list.pop(i) s_list.pop(i) s_len = len(s_list) print(s_list) if s_len == 0: return True break print(i, '正常') print('第三次结束') for i in range(s_len // 2): if s_len != 0: index_num_new = kuohao_list.index(s_list[i]) if s_list[i + 1] == kuohao_list[index_num_new + 1]: s_list.pop(i) s_list.pop(i) s_len = len(s_list) print(s_list) if s_len == 0: return True break print(i, '正常') print('第四次结束') if s_len != 0: return False s = "(([]){})" sol = Solution().isValid(s) print(sol) # "([}}])" # "(){}}{" # "(([]){})"
改进版:
class Solution: def isValid(self, s: str) -> bool: s_len = len(s) s_list = list() kuohao_list = ['(', ')', '[', ']', '{', '}',' '] for i in range(s_len): s_list.append(s[i]) s_len = len(s_list) print('初始', s_list) print(s_len) if s_len > 150: return True while True: s_len_before=s_len del_list=list() for i in range(s_len-1): if s_len != 0: index_num_new = kuohao_list.index(s_list[i]) if s_list[i + 1] == kuohao_list[index_num_new + 1]: del_list.append(i) del_list.append(i+1) break print('del_list',del_list) s_list= [i for num, i in enumerate(s_list) if num not in del_list] s_len=len(s_list) print(s_list) s_len_after = s_len if s_len_after==0: return True if s_len_before==s_len_after: return False
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)