将缺少的左括号添加到公式中
Add missing left parentheses into equation
本文关键字:添加 更新时间:2023-10-16
我一直在为给定的问题寻找合适的解决方案,一直在互联网上寻找一些想法。找不到。
问题是:编写一个程序,从标准输入中获取一个不带左括号的表达式,并打印插入括号的等效中缀表达式。
给定表达式:1 + 2) * 3 - 4)* 5 - 6)))
输出:((1 + 2) * ((3 - 4) * (5 - 6)))
解决这个问题的最佳方法是什么?
我认为目标是假设你只用括号括表达式,而不是单独的数字。
所以你需要抓住每个代币并将它们扔到一个堆栈上
2
+
1
抓取下一个令牌,即 )现在取堆栈的前三个并将其夹在这些括号之间 ( 1 + 2 ),将其作为一个表达式放回堆栈上。
接下来推送堆栈看起来像这样
4
-
3
*
(1 + 2)
拉出前三名并将其放回堆栈括号中 (3-4) * (1+2)
再一次
6
-
5
*
(3-4)
*
(1+2)
我们又打了一遍,再次从堆栈中抢到前 3 名,括号并推回去
(5-6)
*
(3-4)
*
(1+2)
我们抓住另一个括号,再次从堆栈中抓取前 3 名,括号并推回
((3-4)*(5-6))
*
(1+2)
再说一遍...
((1 + 2) * ((3 - 4) * (5 - 6)))
没有更多的输入,所以这是我们的答案
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 如何在C++中从两个单独的for循环中添加两个数组
- POCO::PostgreSQL:如何将std::vector支持添加到`Binder::bind`
- 如何仅为一个函数添加延迟
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 使用std::transform将一个范围的元素添加到另一个范围中
- 如何将更多文件夹添加到c++include路径
- 如何将元素添加到数组的线程安全函数?
- QT通过C++添加映射QML项目
- 如何将点击的信号和插槽添加到qt中的自定义按钮中
- 如何使用重载的相等(==)运算符向测试用例添加描述
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 如何防止clang格式在流运算符调用之间添加换行符<<
- 只能向C++添加一定数量的字符
- Qt和C++:将QLineEdit添加到QTabWidget中
- 将QIcon添加到QTableView单元格
- 为什么我必须在C++中添加一个赋值符号来声明一个数组
- 为什么除非添加括号,否则构造函数上的模板替换会失败?
- 将图像添加到资源文件夹UWP C++
- 当我尝试添加 2 个大字符串时,我无法弄清楚出了什么问题