猿问

一道复杂的算法题,比较有挑战,感兴趣的可以试试。(JavaScript/Java代码皆可)

需要写一个方法实现将一个String表达式按下面的要求转换。

说明:1.表达式里有三种符号 :+ , - , /。

要求:实现 / 符号优先级最高,在 / 符号相关的字符两边加上括号 ( + , -优先级一致)

例如:原表达式如下:

var keyword = "AA + BB/CC/CD + DD - EE + (FF-GG/HH)/JJ + KK"

要求转换表达式如下:

var keyword = "AA + (BB/CC/CD) + DD - EE + ((FF-(GG/HH))/JJ) + KK"


尝试使用正则匹配,递归方式实现双层括号内满足要求,但是双层括号以上的表达式就无法实现。大概是递归调用的情况没有考虑到位。思维受阻了。看看有没有大佬们可以有其它思路和实现方式。



Aime_
浏览 550回答 1
1回答

橋本奈奈未

上次回答有问题,删了
随时随地看视频慕课网APP
我要回答