无锡网站广优化公司wordpress 建app
你好,我是悦创。
下面是三道关于栈的编程题目,适合不同难度级别的练习:
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. 最小栈(中等)
题目描述:
 设计一个支持 push,pop,top 操作,并能在常数时间内检索到最小元素的栈。
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
 
提示: 考虑使用两个栈,一个用来保存所有的元素,另一个用来保存每个元素推入时的最小值。
