题目描述

已知火星人使用的运算符号为#和$
其与地球人的等价公式如下
x#y=2*x+3*y+4
x$y=3*x+y+2
x y是无符号整数
地球人公式按照c语言规则进行计算
火星人公式中$符优先级高于#相同的运算符按从左到右的顺序运算。

输入描述

火星人字符串表达式结尾不带回车换行
输入的字符串说明是 字符串为仅有无符号整数和操作符组成的计算表达式

1.用例保证字符串中操作数与操作符之间没有任何分隔符
2.用例保证操作数取值范围为32位无符号整数,
3.保证输入以及计算结果不会出现整型溢出
4.保证输入的字符串为合法的求值报文
例如: 123#4$5#76$78
5.保证不会出现非法的求值报文
例如: #4$5 这种缺少操作数
    4$5#  这种缺少操作数
    4#$5  这种缺少操作数
    4 $5  有空格
    3+4-5*6/7 有其他操作符
    12345678987654321$54321 32位整数溢出。

输出描述

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

示例1

输入

7#6$5#12

输出

226

说明:

示例 7#6$5#12=7#(3*6+5+2)#12
               =7#25#12
               =(2*7+3*25+4)#12
               =93#12
               =2*93+3*12+4
               =226。

思路分析

  • 先执行$运算,再执行#运算,同级别的从左往右运算。
  • 输出结果结尾不带回车换行。

参考代码

注:题目网上找的,参考代码是练习用,仅供参考,并不保证用例通过率。

import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
import java.util.stream.Collectors;/*** 题目46 火星符号*/
public class Test0046 {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String str = scanner.nextLine();// 获取所有操作符List<String> operators = Arrays.stream(str.split("\\w+")).filter(s -> !s.isEmpty()).collect(Collectors.toList());List<Integer> nums = Arrays.stream(str.split("\\W+")).map(Integer::parseInt).collect(Collectors.toList());// 先执行优先级高的$运算int pos$ = operators.indexOf("$");while (pos$ != -1) {int temp = dollar(nums.get(pos$), nums.get(pos$ + 1));nums.set(pos$, temp);nums.remove(pos$ + 1);operators.remove(pos$);pos$ = operators.indexOf("$");}// 再执行优先级低的#运算int result = nums.get(0);for (int j = 1; j < nums.size(); j++) {result = sharp(result, nums.get(j));}System.out.print(result);}private static int dollar(int x, int y) {// $运算return 3 * x + y + 2;}private static int sharp(int x, int y) {// #运算return 2 * x + 3 * y + 4;}
}

华为机试:火星符号运算相关推荐

  1. Java算法:华为机试算法(下),华为算法Java版,牛客网华为算法73~108题

    接上篇:Java算法:华为机试算法(中),华为算法Java版,牛客网华为算法55~72题   HJ73 计算日期到天数转换 计算日期到天数转换 题目描述 根据输入的日期,计算是这一年的第几天.. 测试 ...

  2. 牛客在线编程-华为机试-中等

    牛客在线编程题目-华为机试-中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21.21% HJ17 坐标移动 字符串 中等 24.79% HJ20 密码验证合格程序 数组 字 ...

  3. 集合篇10.华为机试(涮题记录2)

    华为机试 31.成绩排序(**not) 32. 矩阵乘法 33. 24点游戏算法(not) 34.配置文件恢复 35. 查找两个字符串a.b中的最长公共子串 36.MP3光标位置(not) 37.DN ...

  4. 华为机试108题(C 语言解答)

    Nowcoder题库链接:华为机试 HJ1 字符串最后一个单词的长度(字符串) 输入:hello nowcoder输出:8说明: 最后一个单词为nowcoder,长度为8 示例代码: HJ1.c #i ...

  5. 大师兄教你如何过华为机试

    大师兄教你如何过华为机试 宝典1-内功心法 大华为这个大数据时代土豪金海量式的招聘又要开始了!!! 近期听说大华为的校招机试马上就要开始了,由于华为软件岗位的招聘只有技术面跟机试是与技术有关的内容,所 ...

  6. 华为机试python需要需要当时编译通过吗_华为校招软开算法岗历年机试编程题77道C++代码详解(五)...

    温馨提示:考虑到华为每年校招机试在牛客网进行,所以本文以及同系列其他八篇文章的所有代码均仅保证在牛客网华为机试页面100%accepted.其他编译器使用本代码可能会出现不通过的情况,请知晓. 41. ...

  7. 【华为机试 Python实现】华为机试题集合(已更新171篇)

    文章目录 新手指引 数据结构基础 华为机试真题系列 牛客网华为机试系列 Python 八股文系列 <华为机试真题详解>专栏定价99.9 包含 <华为机试真题>的所有题目. 包含 ...

  8. 牛客网–华为机试在线训练8:合并表记录

    牛客网–华为机试在线训练8:合并表记录 题目描述 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出. 输入描述: 先输入键值对的个 ...

  9. 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 金九银十,金三银四.当前正处于校招.社招的火热期,之前就想为正在筹备就业的同学们准备刷题宝 ...

  10. 【华为机试真题Java】从入门到入职-真题列表导读

    写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...

最新文章

  1. 汇编语言 字符串的复制
  2. 服务器配置文档查服务器名称,服务器配置答案资料.doc
  3. php 405,options跨域请求405
  4. springboot 禁用tomcat_Spring Boot 面试的十个问题
  5. [ES6] 细化ES6之 -- Promise对象
  6. js中top,left,height,width相关参数的解析和实例
  7. 网页制作,改变你的思维方式
  8. pytorch forward
  9. xbox360手柄win10无法识别,显示未知设备
  10. 2023年最新谷歌Google帐号Gmail邮箱账号怎么注册成功的方法与教程?
  11. WEB开发(2) Servlet
  12. 公众平台 php,微信公众平台PHP开发(转载)
  13. idea在plugins中搜不到插件MyBatisX
  14. 点云配准5:4pcs算法在pcl上的实现
  15. xss labs 挑战之旅
  16. 计算机专业省赛一等奖有什么好处,省技能大赛一等奖好处有什么
  17. 利用python open-cv aimageio完成avi png mp4 gif间的转换
  18. pop3 imap 地址
  19. 2022.1.10第六天笔记
  20. 第十四届蓝桥杯三月真题刷题训练——第 22 天

热门文章

  1. pandas读取excel文件(内含多张表)
  2. QT 中控件缩放比列设置
  3. 上个周末走访福州市2家软件公司,感受颇多,把经验分享给大家
  4. python的docx库使用教程
  5. [转贴]关于理工科学生应聘非本专业职位的一些建议
  6. JSON 数据结构、数据格式
  7. 方框如何打勾、打叉与涂黑(转)
  8. openmmlab教程3-MMSeg 使用
  9. 尚硅谷Kubernetes(k8s)视频学习笔记
  10. Verifying 000xxxxx ( 0%) Verify failed between address 0xxxxxx and 0xxxxxx Leaving target processor