如何修改网站备案的域名哈尔滨房地产型网站建设
2026/2/8 22:39:06 网站建设 项目流程
如何修改网站备案的域名,哈尔滨房地产型网站建设,视频网站如何优化,房屋装修设计公司(新卷,100分)- 投篮大赛#xff08;Java JS Python#xff09;题目描述你现在是一场采用特殊赛制投篮大赛的记录员。这场比赛由若干回合组成#xff0c;过去几回合的得分可能会影响以后几回合的得分。 比赛开始时#xff0c;记录是空白的。 你会得到一个记录操…(新卷,100分)- 投篮大赛Java JS Python题目描述你现在是一场采用特殊赛制投篮大赛的记录员。这场比赛由若干回合组成过去几回合的得分可能会影响以后几回合的得分。比赛开始时记录是空白的。你会得到一个记录操作的字符串列表 ops其中ops[i]是你需要记录的第i项操作ops遵循下述规则整数x-表示本回合新获得分数x“” – 表示本回合新获得的得分是前两次得分的总和。“D” – 表示本回合新获得的得分是前一次得分的两倍。“C” – 表示本回合没有分数并且前一次得分无效将其从记录中移除。请你返回记录中所有得分的总和。输入描述输入为一个字符串数组输出描述输出为一个整形数字提示1 ops.length 1000ops[i] 为 “C”、“D”、“”或者一个表示整数的字符串。整数范围是 [-3 * 10^4, 3 * 10^4]需要考虑异常的存在如有异常情况请返回-1对于“”操作题目数据不保证记录此操作时前面总是存在两个有效的分数对于“C”和“D”操作题目数据不保证记录此操作时前面存在一个有效的分数题目输出范围不会超过整型的最大范围不超过2^63 - 1用例输入5 2 C D 输出30说明“5”-记录加5记录现在是[5]“2”-记录加2记录现在是[5,2]“C”-使前一次得分的记录无效并将其移除记录现在是[5].“D”-记录加2*510记录现在是[510].“”-记录加51015记录现在是[51015].所有得分的总和5101530输入5 -2 4 C D 9 输出27说明“5”-记录加5记录现在是[5]“-2”-记录加-2记录现在是[5,-2]“4”-记录加4记录现在是[5,-2,4]“C”-使前一次得分的记录无效并将其移除记录现在是[5,-2].“D”-记录加2*-24记录现在是[5-2, -4].“9”-记录加9记录现在是[5-2, -4, 9].“”-记录加-495记录现在是[5-2, -4, 9, 5].“”-记录加-9514记录现在是[5-2, -4, 9, 5, 14].所以得分的总和 5 - 2 - 4 9 5 14 27输入1输出1说明无输入输出-1说明无题目解析简单的逻辑题按照题目意思写就行。JavaScript算法源码/* JavaScript Node ACM模式 控制台输入获取 */ const readline require(readline); const rl readline.createInterface({ input: process.stdin, output: process.stdout, }); rl.on(line, (line) { const ops line.split( ); console.log(getResult(ops)); }); function getResult(ops) { // ans用于保存每轮的得分 const ans []; const reg /^\-?\d$/; for (let op of ops) { // 如果op是整数则表示本轮得分直接加入ans if (reg.test(op)) { ans.push(op - 0); } else { switch (op) { // 如果op是则表示本轮得分是前两轮得分之和注意越界处理 case : if (ans.length 2) return -1; ans.push(ans.at(-1) ans.at(-2)); break; // 如果op是D表示本轮得分是前一轮得分的双倍注意越界处理 case D: if (ans.length 1) return -1; ans.push(ans.at(-1) * 2); break; // 如果op是C则表示本轮无得分且上一轮得分无效需要去除 case C: if (ans.length 1) return -1; ans.pop(); break; } } } // 感谢网友m0_71826536提示如果用例输入为2 C则此处会报错 // return ans.reduce((p, c) p c); if (ans.length) return ans.reduce((p, c) p c); else return 0; }Java算法源码import java.util.LinkedList; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc new Scanner(System.in); String str sc.nextLine(); String[] ops str.split( ); System.out.println(getResult(ops)); } public static int getResult(String[] ops) { // ans用于保存每轮的得分 LinkedListInteger ans new LinkedList(); String reg ^\\-?\\d$; for (String op : ops) { // 如果op是整数则表示本轮得分直接加入ans if (op.matches(reg)) { ans.addLast(Integer.parseInt(op)); } else { switch (op) { // 如果op是则表示本轮得分是前两轮得分之和注意越界处理 case : if (ans.size() 2) return -1; ans.addLast(ans.getLast() ans.get(ans.size() - 2)); break; // 如果op是D表示本轮得分是前一轮得分的双倍注意越界处理 case D: if (ans.size() 1) return -1; ans.addLast(ans.getLast() * 2); break; // 如果op是C则表示本轮无得分且上一轮得分无效需要去除 case C: // 感谢网友m0_71826536的提示由于题目说对于“C”和“D”操作题目数据不保证记录此操作时前面存在一个有效的分数因此这里C操作不能直接removeLast需要先判断ans是否有数据 if (ans.size() 1) return -1; ans.removeLast(); break; } } } int sum 0; for (Integer an : ans) { sum an; } return sum; } }Python算法源码import re # 输入获取 ops input().split() # 算法入口 def getResult(ops): # ans用于保存每轮的得分 ans [] # 改正则用于判断op是否为一个整数包括负数 pattern r^\-?\d$ for op in ops: # 如果op是整数则表示本轮得分直接加入ans if re.match(pattern, op): ans.append(int(op)) else: # 如果op是则表示本轮得分是前两轮得分之和注意越界处理 if op : if len(ans) 2: return -1 else: ans.append(ans[-1] ans[-2]) # 如果op是D表示本轮得分是前一轮得分的双倍注意越界处理 elif op D: if len(ans) 1: return -1 else: ans.append(ans[-1] * 2) # 如果op是C则表示本轮无得分且上一轮得分无效需要去除 elif op C: if len(ans) 1: return -1 else: ans.pop() else: return -1 ans.append(0) return sum(ans) # 调用算法 print(getResult(ops))

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询