目 录
1. 栈的应用场景
1.1 实际应用场景
总的来说,栈的运用还是非常广泛的,在实际的编程场景中,支持文本编辑器、字处理程序、电子表格程序、绘图程序或类似的应用程序中的撤销功能,支持维护 Web 浏览器所访问过的连接的历史记录。
1.2 例题分类
常见的例题有下面四种,会依次进行讲解,本章只讲数制转换。
- 括号匹配:请看数据结构 03-栈的应用:括号匹配的代码实现_江南野栀子的博客
- 数制转换
- 迷宫求解
- 表达式求值
2. 应用场景:数制转换
十进制转换为N进制,“除以N”的过程,得到的余数是从低到高的次序,而输出则是从高到低,所以需要一个栈来反转次序。
2.1 数制转换例题
例题参看:
例题内容:给定一个整数 num
,将其转化为 7 进制,并以字符串形式输出。
2.2 数制转换代码实现
2.2.1 使用 list 形成事实上的栈-代码实现
在下面的代码中,使用 【】 形成了一个事实上的栈,不断地在列表中压入数据,最后反向读取。
class Solution:
def convertToBase7(self, num: int) -> str:
digits=[] # 这个列表就是一个栈
if(num==0):
return("0")
sigh=True
if(num<0):
sigh=False
num=abs(num)
while(num>0):
mod=num%7
num=num//7
digits.append(mod) #不断地在列表中压入数据
if(sigh):
# 反向读取数据
return("".join([ str(digit) for digit in digits[::-1]]))
else:
# 反向读取数据
return("-"+"".join([ str(digit) for digit in digits[::-1]]))
''
要是大家觉得写得还行,麻烦点个赞或者收藏吧,想个博客涨涨人气,非常感谢!
'''
文章评论