西湖区住房和城市建设局网站青岛外贸网站
web/
2025/10/8 12:17:56/
文章来源:
西湖区住房和城市建设局网站,青岛外贸网站,怒江州建设局网站,国家学历提升官网/*** 题目描述* 你现在是一场采用特殊赛制投篮大赛的记录员。这场比赛由若干回合组成#xff0c;过去几回合的得分可能会影响以后几回合的得分。* 比赛开始时#xff0c;记录时空白的。你会得到一个记录操作的字符串列表aops#xff0c;其中ops[i]是你需要记录的第i项操作过去几回合的得分可能会影响以后几回合的得分。* 比赛开始时记录时空白的。你会得到一个记录操作的字符串列表aops其中ops[i]是你需要记录的第i项操作ops遵循下述规则:* 整数x-表示本回合新获得分数x* “”-表示本回合新获得的得分是前两次得分的总和* “D”-表示本回合新获得的得分是前一次得分的两倍* “C-表示本回合没有分数并且前一次得分无效将其从记录中移除。* 请你返回记录中所有得分的总和。* 输入描述* 输入为一个字符串数组* 输出描述* 输出为一个整型数组* 示例1* input* 5 2 C D * output* 30*/public class 投篮大赛 {// 遍历操作字符串数组模拟记录每个回合得分的情况。// 它使用了栈数据结构来实现各种操作。// 遇到不同的操作符号时根据规则对栈中的数据进行相应的操作最后计算栈中所有得分的总和并返回public static int calPoints(String[] ops) {StackInteger stack new Stack();for (String op : ops) {if (op.equals()) {int top stack.pop();int newTop top stack.peek();stack.push(top);stack.push(newTop);} else if (op.equals(C)) {stack.pop();} else if (op.equals(D)) {stack.push(stack.peek() * 2);} else {stack.push(Integer.valueOf(op));}}int sum 0;for (int score : stack) {sum score;}return sum;}public static void main(String[] args) {
// Scanner scanner new Scanner(System.in);
// System.out.println(请输入记录操作的字符串列表用空格分隔);
// String input scanner.nextLine();
// String[] ops input.split( );
//
// int totalScore calPoints(ops);
// System.out.println(记录中所有得分的总和为 totalScore);
//// 示例1: 输入: 5 2 C D String[] ops1 {5, 2, C, D, };System.out.println(示例1输出: calPoints(ops1)); // 预期输出: 30// 示例2: 输入: 5 -2 4 C D 9 String[] ops2 {5, -2, 4, C, D, 9, , };System.out.println(示例2输出: calPoints(ops2)); // 预期输出: 27}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/89049.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!