栈的实现

复制代码
 1 class Stack:
 2     def __init__(self):
 3         self.lis = []
 4 
 5     def pop(self):
 6         if not self.is_empty():
 7             return self.lis.pop()
 8         else:
 9             raise IndexError("The stack is empty!")
10 
11     def push(self, element):
12         self.lis.append(element)
13 
14     def get_top(self):
15         if len(self.lis) > 0:
16             return self.lis[len(self.lis)-1]
17         else:
18             return None
19 
20     def get_len(self):
21         return len(self.lis)
22 
23     def is_empty(self):
24         return len(self.lis) == 0
25 
26 
27 def brace_match(s):
28     stack = Stack()
29     match = {')': '(', ']': '[', '}': '{'}
30     for ch in s:
31         if ch in match.values():
32             stack.push(ch)
33         elif ch not in match.keys():
34             return False
35         else:
36             if stack.get_top() == match[ch]:
37                 stack.pop()
38             else:
39                 return False
40     else:
41         if stack.get_len() == 0:
42             return True
43         else:
44             return False
45 
46 
47 if __name__ == '__main__':
48     stack = Stack()
49     test_str = '{[(({('
50     print(brace_match(test_str))
复制代码

 

posted @   Avery_rainys  阅读(16)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示