C语言数字加上一个括号,在C ++中添加括号的不同方法
假设我们有一串数字和运算符,我们必须通过计算将数字和运算符分组的所有可能方式来找到所有可能的结果。有效的运算符为+,-和*。因此,如果输入类似“ 2 * 3-4 * 5”,则输出将为[-34,-14,-10,-10、10]。这是因为-(2 *(3-(4 * 5)))= -34
((2 * 3)-(4 * 5))= -14
((2 *(3-4))* 5)= -10
(2 *((3-4)* 5))= -10
((((2 * 3)-4)* 5)= 10
为了解决这个问题,我们将遵循以下步骤-定义一个称为备忘录的映射。
定义一个称为的方法solve()。这将输入字符串作为输入。
创建一个名为ret的数组
如果备忘录已输入,则返回备忘录[输入]
对于范围在0到输入字符串大小的i-数组part1:= solve(输入的子串从0到i-1)
数组part2:= solve(从i到字符串结尾的输入子字符串)
对于范围0到第1部分大小的j
如果输入[i]是加法,则
如果输入[i]是乘法,则
如果输入[i]是减法,则
执行part [j] + part [k]并添加到ret执行part [j] * part [k]并添加到ret
执行part [j]-part [k]并添加到ret对于范围0至第2部分大小的k
如果input [i]是任何受支持的运算符,则
如果ret为空,则以整数形式返回输入字符串
memo [input]:= ret,然后返回ret
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
