当前位置:编程学习 > C#/ASP.NET >>

1、著名外包公司面试题

字符串“{[(10+3)*18-24/8]*(48+37)}/3”,实现一个算法,求字符串算式的结果。 --------------------编程问答-------------------- 常用的 逆波兰 --------------------编程问答-------------------- exec  'select a=' + '{[(10+3)*18-24/8]*(48+37)}/3'

不知道这样做行不行,嘿嘿 --------------------编程问答-------------------- 应该先用 '()' 替换 大括号,还有中括号,然后在运行 exec --------------------编程问答-------------------- 步骤1、先用小括号,代替大括号和中括号

步骤2、然后再使用数据库,进行运算
select  a = (((10+3)*18-24/8)*(48+37))/3 --------------------编程问答-------------------- 呵呵  有意思~~~~~ --------------------编程问答--------------------
引用 1 楼 bdmh 的回复:
常用的 逆波兰

正解 --------------------编程问答-------------------- 想知道公司的名字 --------------------编程问答-------------------- 考,写逆波兰面试这点时间够得到不? --------------------编程问答-------------------- 弱弱的问一句,什么是“逆波兰”,怎么用 --------------------编程问答-------------------- 看来不少人的数据结构学的都不咋样 --------------------编程问答--------------------
“{[(10+3)*18-24/8]*(48+37)}/3”
-------------------------用逆波兰式表示为
10 3+18* 24 8/-48 37+*3/
ab+c*de/-fg+*3/

根据栈取出就可以了
如:
取 10  3 + 则计算10+3=13
取18  * 则计算13*18=234
取24 8 / 则计算 24/8=3
取- 则计算234-3=231
 即 每取一个运算符 就进行一次运算 --------------------编程问答-------------------- 呵呵,有点意思!! --------------------编程问答-------------------- 还真不知道逆波兰 --------------------编程问答--------------------
引用 4 楼 BlueSkyInMyEye 的回复:
步骤1、先用小括号,代替大括号和中括号

步骤2、然后再使用数据库,进行运算
select  a = (((10+3)*18-24/8)*(48+37))/3


这种方法好啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,