AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P2607. 火星文计算2

中等通过率 54% · 提交 1,336 · 通过 720
模拟字符串数学

小慕在开发一套火星文翻译器时,遇到了火星人使用的两种特殊运算符 # 和 。 经过研究,他总结出火星运算与地球运算的等价公式如下: - x#y = 4*x+3*y+2 - xy = 2*x+y+3 其中 x 和 y 均为。 地球人的公式按照 C 语言的运算规则进行计算。 在火星人的公式中,# 运算符的高于 运算符, 相同运算符则按照从左到右的顺序依次运算。

提示:带虚线的词点一下有通俗解释。

输入描述

<p> 火星人字符串表达式结尾不带回车换行 </p> <p> 输入的字符串说明: 字符串为仅有无符号整数和操作符组成的计算表达式 </p> <p> 1. 用例保证字符串中操作数与操作符之间没有任何分隔符 </p> <p> 2. 用例保证操作数取值范围为 32 位无符号整数 </p> <p> 3. 保证输入以及计算结果不会出现整型溢出 </p> <p> 4. 保证输入的字符串为合法的求值报文 </p> <p> 5. 保证不会出现非法的求值报文 </p> <p> 例如: </p> <p> - #4$5 这种缺少操作数; </p> <p> - 4$5# 这种缺少操作数; </p> <p> - 4#$5 这种缺少操作数; </p> <p> - 4 $5 有空格; - 3+4-5*6/7 有其他操作符; </p> <p> - 12345678987654321$54321 32 位整数溢出 </p>

输出描述

根据火星人字符串输出计算结果,结尾不带回车换行

示例

示例 1

输入

7#6$5#12

输出

157

说明:7#6$5#12=(4*7+3*6+2)$5#12 =48$5#12 =48$(4*5+3*12+2) =48$58 =2*48+58+3 =157

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
火星文计算2 - 运算优先级与求值过程 示例:7 # 6 $ 5 # 12 7 # 6 = 48 5 # 12 = 58 48 $ 58 48 $ 58 = 157 # 优先级高于 $ 先计算所有 # 运算 再从左到右计算 $ 运算 最终结果:157
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「火星文计算2」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。