スタック---野球の試合
1936 ワード
各ラウンドの操作は永久的であり、前のラウンドと後のラウンドに影響を与える可能性がある.すべてのラウンドで得点した合計を返す必要があります.
: ["5","2","C","D","+"]
: 30
:
1 : 5 。 :5。
2 : 2 。 :7。
1: 2 。 :5。
3 : 10 ( 2 )。 :15。
4 : 5 + 10 = 15 。 :30。
: ["5","-2","4","C","D","9","+","+"]
: 27
:
1 : 5 。 :5。
2 : -2 。 :3。
3 : 4 。 :7。
1: 3 。 :3。
4 : -4 ( )。 :-1。
5 : 9 。 :8。
6 : -4 + 9 = 5 。 13。
7 : 9 + 5 = 14 。 27。
import java.util.Stack;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public int calPoints(String[] ops) {
int score = 0;
Stack stack = new Stack<>();
for(int i=0;i=2){
int temp1 = stack.pop();
int temp2 = stack.peek();
int num = temp1+temp2;
stack.push(temp1);
stack.push(num);
}
}
Pattern pattern = Pattern.compile("-?[0-9]+");
Matcher matcher = pattern.matcher(ops[i]);
if(matcher.find()){
int num= Integer.valueOf(matcher.group(0));
stack.push(num);
}
}
while (!stack.empty()){
score+=stack.pop();
}
return score;
}
}