[Leet Code] Evaluate Reverse Polish Notation
こんにちは!
土曜日から日曜日までクラブハッカー口調でやっていたので、今ポスター形式で皆さんに会いに来ました
今日、4週目の4番目のアルゴリズムEvaluate Reverse Polish Notationプールを作成します.
サマリ
与えられた
本当に最初の方法はスタックを利用する方法です
これはとても良い積み重ねの問題だと思います.つまり、問題を解いてから受け入れる問題です.
では、短くて簡単ですが、次はプールを作成します.
順序は重要で、2番目の数字
ハークトンはよくできていて、体が急激に悪いので、しばらくしていません.
ハッカーの口調の後記を残すかどうか考えていますが、それを加えるべきかどうか分かりません.ほほほ
とにかく、今回の位置づけを読んでいただき、ありがとうございました:)
土曜日から日曜日までクラブハッカー口調でやっていたので、今ポスター形式で皆さんに会いに来ました
今日、4週目の4番目のアルゴリズムEvaluate Reverse Polish Notationプールを作成します.
質問する
サマリ
与えられた
tokens
の後方演算の値を返します.初志
本当に最初の方法はスタックを利用する方法です
これはとても良い積み重ねの問題だと思います.つまり、問題を解いてから受け入れる問題です.
では、短くて簡単ですが、次はプールを作成します.
コードの説明
Stack<Integer> calculation = new Stack<>();
Stack
を宣言して演算します.for (String token: tokens) {
if (token.equals("+")) {
int a = calculation.pop();
int b = calculation.pop();
calculation.push(b + a);
} else if (token.equals("-")) {
int a = calculation.pop();
int b = calculation.pop();
calculation.push(b - a);
} else if (token.equals("*")) {
int a = calculation.pop();
int b = calculation.pop();
calculation.push(b * a);
} else if (token.equals("/")) {
int a = calculation.pop();
int b = calculation.pop();
calculation.push(b / a);
} else {
calculation.push(Integer.parseInt(token));
}
}
次に、入力されたtokens
をfor文としてループし、token
が演算子である場合、スタック内の最初の2つの値を計算し、演算子でない場合、数値に変換してスタックに保存します.順序は重要で、2番目の数字
pop
の前に演算を行うだけで、後続の演算が正しく行われます.完全なコード
class Solution {
public int evalRPN(String[] tokens) {
Stack<Integer> calculation = new Stack<>();
for (String token: tokens) {
if (token.equals("+")) {
int a = calculation.pop();
int b = calculation.pop();
calculation.push(b + a);
} else if (token.equals("-")) {
int a = calculation.pop();
int b = calculation.pop();
calculation.push(b - a);
} else if (token.equals("*")) {
int a = calculation.pop();
int b = calculation.pop();
calculation.push(b * a);
} else if (token.equals("/")) {
int a = calculation.pop();
int b = calculation.pop();
calculation.push(b / a);
} else {
calculation.push(Integer.parseInt(token));
}
}
return calculation.pop();
}
}
の最後の部分
ハークトンはよくできていて、体が急激に悪いので、しばらくしていません.
ハッカーの口調の後記を残すかどうか考えていますが、それを加えるべきかどうか分かりません.ほほほ
とにかく、今回の位置づけを読んでいただき、ありがとうございました:)
Reference
この問題について([Leet Code] Evaluate Reverse Polish Notation), 我々は、より多くの情報をここで見つけました https://velog.io/@khyunjiee/Leet-Code-Evaluate-Reverse-Polish-Notationテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol