黑马程序员技术交流社区

标题: 华为笔试题求解 [打印本页]

作者: 帆~    时间: 2014-7-3 23:35
标题: 华为笔试题求解
一道华为JAVA比武大赛试题,你能解答吗?
据说这是华为2005年中央平台开发部的JAVA比武大赛中的必做题,当时难倒了不少人。你能够给出最佳答案吗?把你的代码帖出来,看看谁的算法最简单最高效。
  要求:
/////////////////////input.txt样例////////////////////////////////
1+3/7*2=
4+2/*asjdff*/5-8=
5%2+5-2/*4=6/*i**ifdg***/*84o*/*1-2=
………………………………………         //更多表达式省略
/////////////////////////////////////////////////////////////////

/////////////////////output.txt样例////////////////////////////////
1+3/7*2=43
4+2/*asjdff*/*5-8=6
5%2+5-2/*4=6/*i**ifdg***/*84o*/*1-2=??
………………………………………         //更多表达式省略
/////////////////////////////////////////////////////////////
  1. 要求用JAVA实现。
  2. 若在命令行参数中指明了 input.txt 和 output.txt,请计算出input.txt中每一行表达式的值,并写入到output.txt文件中
  3. 若在命令行参数中只指明了 input.txt,则新建一个output.txt,计算出input.txt中每一行表达式的值,并写入到output.txt文件中
  4. 若在命令行参数中没有指明 input.txt 和 output.txt,则输入一个类似4+2/*asjdff*/*5-8这样的表达式,计算1000次这个表达式的值,在屏幕中输出结计算结果和所用时间。
作者: cat73    时间: 2014-7-4 12:37
/*4=6/*i**ifdg***/*84o*/
难道这一段是一个整体的注释?

作者: 沐小北    时间: 2014-7-4 12:48
pre:
  建立一个表达式优先级线性表,如+-/%*()等
  建立一个源数组
  建立一个结果数组
1 IO操作将每一行读入数组,
    1.1 使用正则替换注释。
    1.2 逐个把此行的每个操作符(数)压栈。
    1.3 压栈优先级相等时计算,并将结果存入结果数组

2 IO操作建文件。
    2.1将源数组的每一行+结果每一行写入文件的每一行

作者: 晴天_SH    时间: 2014-7-4 12:50
我的思路是:定义一个数据栈,栈中存储的是各个计算符号的运算的优先级,每次运算的时候按照优先级运算就可以啦,记得不错的话我以前用C语言写过,这样的程序
作者: sk120110    时间: 2014-7-4 13:08
自己技术差,还看不懂
作者: 790324255a    时间: 2014-7-4 14:28
最讨厌这种题




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2