题目:
题目链接:https://leetcode-cn.com/problems/baseball-game/
题目大概意思链接里面都有所以我就不多说了
题目解析:通过Stack栈来实现操作
代码
class Solution {
public int calPoints(String[] ops) {
//创建栈对象
Stack<Integer> stack = new Stack<>();
//开始遍历
for(int i = 0; i< ops.length; i++) {
//如果遇到“+”则进行操作
if(ops[i].equals("+")) {
//将前一轮的数字取出
int n1 = stack.pop();
//获取前两轮的数字值,并与前一轮的数字相加
int n2 = n1 + stack.peek();
//将前一轮的数字放回栈中
stack.push(n1);
//将这一轮的结果放回栈中
stack.push(n2);
}else if(ops[i].equals("D")) {//如果遇到“D”则进行操作
//获取前一轮的数据值
int n3 = stack.peek();
//将前一轮的数据值翻两倍,再返回栈中
stack.push(n3*2);
}else if(ops[i].equals("C")) {//如果遇到“C”则进行操作
//将前一轮的数据从栈中取出
stack.pop();
}else {//如果是数字则进行操作
//将字符串转换成整数类型
int n4 = Integer.parseInt(ops[i]);
//进栈
stack.push(n4);
}
}
//将栈中的数字进行累加
int sum = 0;
for (Integer i : stack) {
sum = sum + i;
}
//返回结果
return sum;
}
}
总结
这道题目比较简单,是属于栈的简单应用。