2024-09-26 22:45:40 发布
网友
我编写了一个python程序来将中缀表达式转换为后缀表达式(又称反向波兰符号)。在我的问题中,只有数字0-9以及运算符*和+。 现在我需要找到表示后缀表达式的字典式最大字符串。 示例:
考虑到这些限制条件(只有0到9之间的数字,没有空格,只有乘法和求和),下面的方法可以满足您的需要:
expr1 = '2*4*3+9*3+5' expr2 = '9*3+5+3*4*2' def reverse_polish_nation(expr): terms = expr.split('+') facs = [ sorted(term.split('*')) for term in terms ] rpn_terms = ['{}{}'.format(''.join(factors), '*'*(len(factors)-1)) for factors in facs] rpn_expr = '{}{}'.format(''.join(sorted(rpn_terms)), '+'*(len(rpn_terms)-1)) return rpn_expr print(reverse_polish_nation(expr1), reverse_polish_nation(expr2) ) # output: ('234**39*5++', '234**39*5++')
考虑到这些限制条件(只有0到9之间的数字,没有空格,只有乘法和求和),下面的方法可以满足您的需要:
相关问题 更多 >
编程相关推荐