给定一个字符串 {xxx[xxx{xxx}]xx{x[xxx]xxx{xxx}xx}x} 判断其中的 {} 是否成对出现python
答题思路:app
使用堆栈进行解决
咱们首先压栈一个左括号,当何时检测到与之对应的右括号出现时弹栈,基于这样的解题思路咱们来看下具体怎么实现ide
class Stack: '''定义一个数据列表用来数据传输下标_标示不被外界访问''' def __init__(self): self._data = [] def push(self, item): self._data.append(item) def pop(self): return self._data.pop() def get_size(self): if len(self._data) == 0: return True else: return len(self._data) def push_data(self): data1 = self._data return data1
c建立一个测试类学习
''' 遇到问题没人解答?小编建立了一个Python学习交流QQ群:531509025 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书! ''' class Test_Stack: def setup(self): self.stack = Stack() '''建立一个方法传入data而后进行成对的压栈和出栈''' def match(self, data): for c in data: if c in "{([": self.stack.push(c) elif c in "})]": """处理Stack中的_data无数据的状况""" try: self.stack.pop() except Exception as e: print(e) return False return self.stack.get_size() def test_match(self): test_data = "{xxxxx[dddddddd(xxxxx{ddddd}dfsfe)dfsefe]xxxx}}}" return self.match(test_data) == True t=Test_Stack() t.setup() print(t.test_match())