暴力求解
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) # "([}}])" # "(){}}{" # "(([]){})"