diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 036. \345\220\216\347\274\200\350\241\250\350\276\276\345\274\217/README.md" "b/lcof2/\345\211\221\346\214\207 Offer II 036. \345\220\216\347\274\200\350\241\250\350\276\276\345\274\217/README.md" index ff26a2361d9f8..c41f381efeeba 100644 --- "a/lcof2/\345\211\221\346\214\207 Offer II 036. \345\220\216\347\274\200\350\241\250\350\276\276\345\274\217/README.md" +++ "b/lcof2/\345\211\221\346\214\207 Offer II 036. \345\220\216\347\274\200\350\241\250\350\276\276\345\274\217/README.md" @@ -217,6 +217,37 @@ func popInt(stack *arraystack.Stack) int { } ``` +#### Swift + +```swift +class Solution { + func evalRPN(_ tokens: [String]) -> Int { + var stk = [Int]() + + for token in tokens { + if let num = Int(token) { + stk.append(num) + } else { + let y = stk.removeLast() + let x = stk.removeLast() + switch token { + case "+": + stk.append(x + y) + case "-": + stk.append(x - y) + case "*": + stk.append(x * y) + default: + stk.append(x / y) + } + } + } + + return stk.removeLast() + } +} +``` + diff --git "a/lcof2/\345\211\221\346\214\207 Offer II 036. \345\220\216\347\274\200\350\241\250\350\276\276\345\274\217/Solution.swift" "b/lcof2/\345\211\221\346\214\207 Offer II 036. \345\220\216\347\274\200\350\241\250\350\276\276\345\274\217/Solution.swift" new file mode 100644 index 0000000000000..e45edd7e08fba --- /dev/null +++ "b/lcof2/\345\211\221\346\214\207 Offer II 036. \345\220\216\347\274\200\350\241\250\350\276\276\345\274\217/Solution.swift" @@ -0,0 +1,26 @@ +class Solution { + func evalRPN(_ tokens: [String]) -> Int { + var stk = [Int]() + + for token in tokens { + if let num = Int(token) { + stk.append(num) + } else { + let y = stk.removeLast() + let x = stk.removeLast() + switch token { + case "+": + stk.append(x + y) + case "-": + stk.append(x - y) + case "*": + stk.append(x * y) + default: + stk.append(x / y) + } + } + } + + return stk.removeLast() + } +}