中国航天建设集团有限公司网站,陕西网,全国证书统一查询证书,滁州seo优化你好#xff0c;我是悦创。
下面是三道关于栈的编程题目#xff0c;适合不同难度级别的练习#xff1a;
1. 有效的括号#xff08;简单#xff09;
题目描述#xff1a; 给定一个只包括 (#xff0c;)#xff0c;{#xff0c;}#xff0c;[ 和 ] 的字符串#xf…你好我是悦创。
下面是三道关于栈的编程题目适合不同难度级别的练习
1. 有效的括号简单
题目描述 给定一个只包括 (){}[ 和 ] 的字符串判断字符串是否有效。有效字符串需满足
左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。
示例
输入: ()输出: true输入: ()[]{}输出: true输入: (]输出: false输入: ([)]输出: false输入: {[]}输出: true
提示 使用栈来处理匹配的括号。
2. 每日温度中等
题目描述 给定一个整数数组 temperatures表示每天的温度返回一个数组 answer其中 answer[i] 是指对于第 i 天至少还要等多少天才会有更高的温度如果之后都没有更高的温度则为 0。
示例
输入: temperatures [73, 74, 75, 71, 69, 72, 76, 73]输出: [1, 1, 4, 2, 1, 1, 0, 0]
提示 可以利用栈来跟踪那些尚未找到下一个更高温度日的日子。
3. 最小栈中等
题目描述 设计一个支持 pushpoptop 操作并能在常数时间内检索到最小元素的栈。
push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。
示例
minStack MinStack()
minStack.push(-2)
minStack.push(0)
minStack.push(-3)
print(minStack.getMin()) # 返回 -3
minStack.pop()
print(minStack.top()) # 返回 0
print(minStack.getMin()) # 返回 -2提示 考虑使用两个栈一个用来保存所有的元素另一个用来保存每个元素推入时的最小值。