网易2017实习生招聘笔试题—奇怪的表达式求值
来源:互联网 发布:网络建设需求 编辑:程序博客网 时间:2024/04/28 23:12
1、题目
题目描述
常规的表达式求值,我们都会根据计算的优先级来计算,比如*/的优先级高于+-。但是小易所生活的世界的表达式规则很简单,从左往右依次计算即可,而且小易所在的世界没有除法,意味着表达式中没有/,只有(+,-和*)。现在给出一个表达式,需要你帮忙计算出小易所在的世界这个表达式的值是多少?输入描述
输入为一行字符串,即一个表达式。其中运算符只有-,+,*。参与计算的数字只有0~9.
2、基本思想
(1)读取输入表达式,将字符串转化为字符数组;
(2)遍历字符数组,如果data[i]字符为+,-,*,则取前一个data[i-1]和后一个data[i+1]进行运算,这里需要注意char转化为int的ASCALL码变换,相差48;
(3)将运算后的结果赋值给data[i+1],再进行重复运算。
3、解决方案
import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.next(); int sum = 0; char dataArray[] = s.toCharArray(); for(int i = 0;i < dataArray.length - 1;i ++){ switch(dataArray[i]) { case '+': sum = dataArray[i-1] + dataArray[i+1]-96; dataArray[i+1] = (char) (sum+48); break; case '-': sum = dataArray[i-1] - dataArray[i+1]; dataArray[i+1] = (char) (sum+48); break; case '*': sum = (dataArray[i-1]-48) * (dataArray[i+1]-48); dataArray[i+1] = (char) (sum+48); break; default: break; } } sc.close(); System.out.println(sum); }}
0 0
- 网易2017实习生招聘笔试题—奇怪的表达式求值
- 【网易2017实习生编程题】 工作安排 集合 奇怪的表达式求值 涂棋盘 小易记单词
- 【网易2017实习生编程题】 工作安排 集合 奇怪的表达式求值 涂棋盘 小易记单词
- 奇怪的表达式求值--网易2017春招实习笔试编程题8
- 网易面试题——奇怪的表达式求值
- 网易考拉2017暑假实习生招聘笔试题(网络问题)
- 网易2017实习生招聘笔试题 C++开发工程师
- 2013网易实习生招聘笔试题
- 网易2017春招[编程题]奇怪的表达式求值@Java
- 网易2017春招编程题:奇怪的表达式求值 [python]
- 名企笔试:网易游戏雷火盘古2017实习生招聘笔试题(字符串编码)
- 网易互娱2017实习生招聘在线笔试(一)
- 网易互娱2017实习生招聘在线笔试(二)
- 网易互娱2017实习生招聘在线笔试(三)
- 网易互娱2017实习生招聘在线笔试(一)
- 网易2016机器翻译实习生招聘笔试编程题
- 网易互娱2017实习生招聘游戏研发工程师在线笔试第二场(神奇的数)
- 2017网易游戏雷火盘古实习生招聘笔试真题 第四题
- 历届试题 危险系数 求割点
- DelayQueue实现订单的定时取消
- 七星彩论坛
- 学习ros wiki 中rqt的使用随手记录(二)
- DX9与DX11shader编写中SV_POSITION与POSITION和SV_Target与COLOR之间的区别(二)
- 网易2017实习生招聘笔试题—奇怪的表达式求值
- 天梯赛总结
- 21天精通java基础之Day18常用类(Sting相关)
- 在Linux上安装jdk
- 使用jQuery Ajax调用豆瓣API
- linux内存寻址
- 数组的静态初始化
- Leetcode-79. Word Search
- Linux安装Eclipse (C/C++)