0

0

使用C++移除包含+和-运算符的代数字符串中的括号

王林

王林

发布时间:2023-09-09 10:57:02

|

853人浏览过

|

来源于tutorialspoint

转载

使用c++移除包含+和-运算符的代数字符串中的括号

给定一个像 p-(q-r)-s 这样的代数字符串,我们需要删除括号并将该字符串转换为具有相同数学结果的字符串。因此,字符串 p-(q-r)-s 被转换为 p-q+r-s,给出了相同的数学结果。为了实现这一点,我们可以使用堆栈并跟踪是否应该翻转括号表达式中即将出现的符号。

  • 0 表示 + 或无翻转

  • 1 表示 - 或翻转

因此,在每个括号打开时,我们将根据括号中的符号是否翻转来推送 0 或 1。当我们看到右括号时,我们将弹出堆栈。

立即学习C++免费学习笔记(深入)”;

注意 - 我们没有考虑以括号开头的字符串。我们必须清理这种类型的字符串。例如 s="(p-(q+r))" 必须是 s="p-(q+r)"。在这种情况下,我们可以轻松地运行从索引 1 到长度 -2,然后从 0 到长度-1 的循环。

让我们看一些输入场景

假设该方法的输入是字符串数据类型的数字,在结果列表中,我们获得除括号外的表达式 -

AI at Meta
AI at Meta

Facebook 旗下的AI研究平台

下载
Input: (2×3)─(6─(4+5))
Result: 2×3–6+4+5

假设方法的输入以括号开头,在结果列表中,我们得到一个不带括号的表达式,如下 -

Input: (a+(b-c-d)-e)
Result: a-b+c+d+e

注意 - 我们没有考虑程序中以括号开头的字符串。我们必须清理这种类型的字符串。例如 s="(a+(b-c-d)-e)" 必须是 s="a+(b-c-d)-e"。在这种情况下,我们可以轻松地运行从索引 1 到长度 -2,然后从 0 到长度-1 的循环。

这里我们可以使用包含括号的多项式表达式作为输入,因此在结果列表中,我们获得如下表达式 -

Input: (p*p)-(p-q)
Result: p*p-p+q

我们将其应用于二次多项式,但该方法也可用于更高阶的多项式表达式。

示例

假设我们有三个字符串 S1、S2 和 S3,其值如下 -

string s1 = "p-(-q+(-r+(s-t)))";
string s2 = "(p+q-r+t+u)";
string s3 = "(p+ (q-r-t)-u)";

因此,让我们使用 C++ 方法从上面包含 + 和 - 运算符的字符串中删除括号。这是针对给定问题的 C++ 程序 -

#include 
#include 
using namespace std;
string solve(string s) {
   stack sk;
   sk.push(0);
   string res = "";
   for(int i=0;i

输出

p+q+r-s+t
p-q+r-t-u
p- q-r-t+u

结论

我们使用一个简单的堆栈来跟踪每个括号开口的标志。然后,用符号,我们把价值观一一转化。关键是要确定如何用括号跟踪变化的符号,之后问题就变得容易了。

相关专题

更多
数据类型有哪几种
数据类型有哪几种

数据类型有整型、浮点型、字符型、字符串型、布尔型、数组、结构体和枚举等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

303

2023.10.31

php数据类型
php数据类型

本专题整合了php数据类型相关内容,阅读专题下面的文章了解更多详细内容。

222

2025.10.31

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1465

2023.10.24

Go语言中的运算符有哪些
Go语言中的运算符有哪些

Go语言中的运算符有:1、加法运算符;2、减法运算符;3、乘法运算符;4、除法运算符;5、取余运算符;6、比较运算符;7、位运算符;8、按位与运算符;9、按位或运算符;10、按位异或运算符等等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

228

2024.02.23

php三元运算符用法
php三元运算符用法

本专题整合了php三元运算符相关教程,阅读专题下面的文章了解更多详细内容。

85

2025.10.17

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

258

2023.08.03

js截取字符串的方法
js截取字符串的方法

js截取字符串的方法有substring()方法、substr()方法、slice()方法、split()方法和slice()方法。本专题为大家提供字符串相关的文章、下载、课程内容,供大家免费下载体验。

208

2023.09.04

java基础知识汇总
java基础知识汇总

java基础知识有Java的历史和特点、Java的开发环境、Java的基本数据类型、变量和常量、运算符和表达式、控制语句、数组和字符串等等知识点。想要知道更多关于java基础知识的朋友,请阅读本专题下面的的有关文章,欢迎大家来php中文网学习。

1465

2023.10.24

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

43

2026.01.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 4.5万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 2.6万人学习

Go 教程
Go 教程

共32课时 | 3.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号