Skip to content

Latest commit

 

History

History
92 lines (61 loc) · 2.92 KB

02.02.02-Exercises.md

File metadata and controls

92 lines (61 loc) · 2.92 KB

02.02.02 练习题目(第 05 天)

1.1 题目大意

要求:设计一个「栈」。实现 pushpoptopgetMin 操作,其中 getMin 要求能在常数时间内实现。

说明

  • $-2^{31} \le val \le 2^{31} - 1$
  • poptopgetMin 操作总是在非空栈上调用
  • pushpoptopgetMin 最多被调用 $3 * 10^4$ 次。

示例

输入:
["MinStack","push","push","push","getMin","pop","top","getMin"]
[[],[-2],[0],[-3],[],[],[],[]]

输出:
[null,null,null,null,-3,null,0,-2]

解释MinStack minStack = new MinStack();
minStack.push(-2);
minStack.push(0);
minStack.push(-3);
minStack.getMin();   --> 返回 -3.
minStack.pop();
minStack.top();      --> 返回 0.
minStack.getMin();   --> 返回 -2.

2.1 题目大意

描述:给定一个只包括 '('')''{''}''['']' 的字符串 s

要求:判断字符串 s 是否有效(即括号是否匹配)。

说明

  • 有效字符串需满足:
    1. 左括号必须用相同类型的右括号闭合。
    2. 左括号必须以正确的顺序闭合。

示例

输入s = "()"
输出True


输入s = "()[]{}"
输出True

3.1 题目大意

描述:给定一个字符串表达式 s,表达式中所有整数为非负整数,运算符只有 +-*/,没有括号。

要求:实现一个基本计算器来计算并返回它的值。

说明

  • $1 \le s.length \le 3 * 10^5$
  • s 由整数和算符(+-*/)组成,中间由一些空格隔开。
  • s 表示一个有效表达式。
  • 表达式中的所有整数都是非负整数,且在范围 $[0, 2^{31} - 1]$ 内。
  • 题目数据保证答案是一个 32-bit 整数。

示例

输入s = "3+2*2"
输出7


输入s = " 3/2 "
输出1

习题解析

  1. 0155. 最小栈」习题解析:网页链接Github 链接
  2. 0020. 有效的括号」习题解析:网页链接Github 链接
  3. 0227. 基本计算器 II」习题解析:网页链接Github 链接