桐乡 网站建设,青海公路建设市场信用信息服务网站,广州软件开发培训机构有哪些,电子商务网站建设 教材火星文计算2
题目
已知火星人使用的运算符号为#;$ 其与地球人的等价公式如下 x#y4*x3*y2 x$y2*xy3 x y是无符号整数 地球人公式按照c语言规则进行计算 火星人公式中#符优先级高于$ 相同的运算符按从左到右的顺序运算
输入
火星人字符串表达式结尾不带回车换行 输入的字符串…火星文计算2
题目
已知火星人使用的运算符号为#;$ 其与地球人的等价公式如下 x#y4*x3*y2 x$y2*xy3 x y是无符号整数 地球人公式按照c语言规则进行计算 火星人公式中#符优先级高于$ 相同的运算符按从左到右的顺序运算
输入
火星人字符串表达式结尾不带回车换行 输入的字符串说明是 字符串为仅有无符号整数和操作符组成的计算表达式
用例保证字符串中操作数与操作符之间没有任何分隔符用例保证操作数取值范围为32位无符号整数保证输入以及计算结果不会出现整型溢出保证输入的字符串为合法的求值报文 例如: 123#4$5#76$78保证不会出现非法的求值报文 例如: #4$5 这种缺少操作数 4$5# 这种缺少操作数 4#$5 这种缺少操作数 4 $5 有空格 34-5*6/7 有其他操作符 12345678987654321$54321 32位整数溢出
输出
根据火星人字符串输出计算结果 结尾不带回车换行
示例一
输入
7#6$5#12输出
157说明
7#6$5#12(4*73*62)$5#1248$5#1248$(4*53*122)48$582*48583157解题思路
这是一个字符串解析的算法任务它对输入的字符串进行了处理然后输出最终结果。
首先该代码使用readline函数读入一个字符串该字符串可能包含#和$符号表示分隔符。然后使用split函数将读入的字符串按#符号分隔为一个字符串数组。接下来遍历字符串数组对于包含$符号的字符串再使用split函数将其分隔为数字字符串数组。然后使用reduce函数对该数字字符串数组进行计算结果存储在数组的相应位置。如果字符串数组仅包含一个元素则直接输出该元素的值。否则使用reduce函数将数组的所有元素进行计算并输出结果。
核心知识点 使用正则表达式将输入字符串分为两个列表数字列表和操作符列表。 使用 while 循环实现对 “#” 操作符的计算。 调用 sharp 和 dollar 函数对数字进行运算并得到最终结果。 将最终结果通过 print 语句输出。
Code
/*** Author: 华为OD联盟(梦想橡皮擦码莎拉蒂鸿蒙坚果)* Date: 2023/2/16* Time: 9:35* Description:*/
let areadline()// let a7$6$5#12let resa.split(#)for(let i0;ires.length;i){if(res[i].includes($)){let tres[i].split($)res[i]t.reduce((a,b)3*Number(a)Number(b)2)}}if(res.length1){console.log(res[0])}else{resres.reduce((a,b)(2*a3*b4))}console.log(res)版权说明
试题来源华为 OD 联盟整理收集
题解解题思路 与 代码 为原创内容该部分版权由 OD 联盟共同拥有并授权组内成员发布。
目标 助你解开所有机试题