mirror of
https://github.com/youngyangyang04/leetcode-master.git
synced 2025-07-12 21:50:49 +08:00
@ -325,6 +325,33 @@ func evalRPN(_ tokens: [String]) -> Int {
|
|||||||
return stack.last!
|
return stack.last!
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
PHP:
|
||||||
|
```php
|
||||||
|
class Solution {
|
||||||
|
function evalRPN($tokens) {
|
||||||
|
$st = new SplStack();
|
||||||
|
for($i = 0;$i<count($tokens);$i++){
|
||||||
|
// 是数字直接入栈
|
||||||
|
if(is_numeric($tokens[$i])){
|
||||||
|
$st->push($tokens[$i]);
|
||||||
|
}else{
|
||||||
|
// 是符号进行运算
|
||||||
|
$num1 = $st->pop();
|
||||||
|
$num2 = $st->pop();
|
||||||
|
if ($tokens[$i] == "+") $st->push($num2 + $num1);
|
||||||
|
if ($tokens[$i] == "-") $st->push($num2 - $num1);
|
||||||
|
if ($tokens[$i] == "*") $st->push($num2 * $num1);
|
||||||
|
// 注意处理小数部分
|
||||||
|
if ($tokens[$i] == "/") $st->push(intval($num2 / $num1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $st->pop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
Scala:
|
Scala:
|
||||||
```scala
|
```scala
|
||||||
object Solution {
|
object Solution {
|
||||||
@ -351,6 +378,7 @@ object Solution {
|
|||||||
// 最后返回栈顶,不需要加return关键字
|
// 最后返回栈顶,不需要加return关键字
|
||||||
stack.pop()
|
stack.pop()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
-----------------------
|
-----------------------
|
||||||
|
Reference in New Issue
Block a user