Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 1dc1959

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /