5.19 - Stacks and Queues
- Decode String
k[encoded_string] 的编码字符串,将编码的字符重复k次,最后打印出一个完整的字符串。
思路:使用栈结构,由里层向外层,层层解码,当遇到了[
字符时,向stack当中添加元素,当遇到了]
字符时,将stack当中的元素pop() 出来。
Q: 重复的数字k如何处理? 用一个 直接用一个命令将字符串复制k次?
Q: 如何构建一个新的字符串? String builder ?
-
Simplify Path
题目描述: 给出一个绝对路径,返回一个相对路径
Corner Case: 1.空路径返回/
2.忽略重复的/
符号
思路 只需要找到最后的一个/
将这个/
后面跟随的字符返回?
字符串的处理,暂时跳过 -
Basic Calculator
算法课上提到过的一个使用两个栈结构的算法 Arithmetic expression evaluation
步骤: -
创建两个栈,一个数值栈存value值,一个符号栈存operator,
2.读取字符串 对于左括号,不处理,对于右括号,从符号栈中pop出一个符号,从数值栈中pop出两个元素,将两个元素根据pop出的符号做操作,并将结果返回到
数值栈当中。
Q1: 如何判断一个c 是否是数字?
A: Character.isDigit(c)
.
Q2: operator 字符如何转变成真正的操作符?
Q3: