首页 > IT职业 > > 一道复杂的算法题,比较有挑战,感兴趣的可以试试。
一道复杂的算法题,比较有挑战,感兴趣的可以试试。(JavaScript/Java代码皆可)
需要写一个方法实现将一个String表达式按下面的要求转换。
说明:1.表达式里有三种符号 :+ , - , /。
要求:实现 / 符号优先级最高,在 / 符号相关的字符两边加上括号( + , -优先级一致)
例如:原表达式如下:
1varkeyword = "AA + BB/CC/CD + DD - EE + (FF-GG/HH)/JJ + KK"
要求转换表达式如下:
1varkeyword = "AA + (BB/CC/CD) + DD - EE + ((FF-(GG/HH))/JJ) + KK"
尝试使用正则匹配,递归方式实现双层括号内满足要求,但是双层括号以上的表达式就无法实现。大概是递归调用的情况没有考虑到位。思维受阻了。看看有没有大佬们可以有其它思路和实现方式。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4809/viewspace-3122756/ ,如需转载,请注明出处,否则将追究法律责任。