Skip to content

Commit 1dc1959

Browse files
authored
feat: add swift implementation to lcof2 problem: No.036 (doocs#3041)
1 parent 192ccef commit 1dc1959

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

lcof2/剑指 Offer II 036. 后缀表达式/README.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,37 @@ func popInt(stack *arraystack.Stack) int {
217217
}
218218
```
219219

220+
#### Swift
221+
222+
```swift
223+
class Solution {
224+
func evalRPN(_ tokens: [String]) -> Int {
225+
var stk = [Int]()
226+
227+
for token in tokens {
228+
if let num = Int(token) {
229+
stk.append(num)
230+
} else {
231+
let y = stk.removeLast()
232+
let x = stk.removeLast()
233+
switch token {
234+
case "+":
235+
stk.append(x + y)
236+
case "-":
237+
stk.append(x - y)
238+
case "*":
239+
stk.append(x * y)
240+
default:
241+
stk.append(x / y)
242+
}
243+
}
244+
}
245+
246+
return stk.removeLast()
247+
}
248+
}
249+
```
250+
220251
<!-- tabs:end -->
221252

222253
<!-- solution:end -->
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
class Solution {
2+
func evalRPN(_ tokens: [String]) -> Int {
3+
var stk = [Int]()
4+
5+
for token in tokens {
6+
if let num = Int(token) {
7+
stk.append(num)
8+
} else {
9+
let y = stk.removeLast()
10+
let x = stk.removeLast()
11+
switch token {
12+
case "+":
13+
stk.append(x + y)
14+
case "-":
15+
stk.append(x - y)
16+
case "*":
17+
stk.append(x * y)
18+
default:
19+
stk.append(x / y)
20+
}
21+
}
22+
}
23+
24+
return stk.removeLast()
25+
}
26+
}

0 commit comments

Comments
 (0)