当前位置: 首页 > news >正文

天梯——算式拆分

这道题提供两种解法,一种是字符串,一种是利用栈

字符串

#include<bits/stdc++.h>
using namespace std;
int main(){string s;cin>>s;while(s.size()){int a=s.find(')');//查找第一次出现)的位置int b=s.rfind('(',a);//从a开始,向前查找第一次出现的(;cout<<s.substr(b+1,a-b-1)<<endl;//提取(不带括号)s.erase(b,a-b+1);//删除(带括号)}return 0;
}

find和rfind是解题关键,下面这篇博客介绍的很详细

c++ string中rfind()与find()的简单学习使用_string rfind-CSDN博客

#include<bits/stdc++.h>
using namespace std;
int main(){string s;cin>>s;stack<char>h;//建栈for(int i=0;i<s.length();i++){if(s[i]==')'){int j=i-1;while(s[j]!='('){//向左遍历,让括号里面的字符进栈h.push(s[j]);j--;}s.erase(j,i-j+1);//连同括号一起删除while(!h.empty()){ //利用栈的特性(后进先出),逆序输出括号里的内容。cout<<h.top();//输出栈顶元素h.pop();  //弹出栈顶元素}i=j-1;//将i更新为左括号前面的位置,继续下一层循环cout<<endl;}}return 0;
}

注意

不一定非要用栈,栈在这里的作用是逆序(先进后出)存储括号内的内容,以便在输出时能够按照正确的顺序(括号内的顺序)输出。如果使用其他数据结构,只要能够实现逆序存储或输出,也可以达到相同的效果。

例如使用  vector  的替代方法: 可以使用  vector  来存储括号内的内容,然后在输出时逆序遍历  vector 。以下是修改后的代码示例:

#include<bits/stdc++.h>
using namespace std;int main()
{string s;cin >> s;vector<char> temp; // 使用 vector 替代栈for (int i = 0; i < s.size(); i++){if (s[i] == ')'){int j = i - 1;while (s[j] != '('){temp.push_back(s[j]); // 将字符存储到 vector 中j--;}s.erase(j, i - j + 1); // 删除括号对// 逆序输出 vector 中的内容for (int k = temp.size() - 1; k >= 0; k--){cout << temp[k];}temp.clear(); // 清空 vectori = j - 1; // 调整循环变量cout << endl;}}return 0;
}

相关文章:

  • 在g2o图优化框架中,顶点(Vertex)和边(Edge)的定义与功能的区别
  • SAP-ABAP:ABAP内存:SAP开发中的数据暂存利器解析
  • V Rising 夜族崛起 [DLC 解锁] [Steam] [Windows SteamOS]
  • C语言学习路线
  • TypeScript中的函数类型定义与类型约束
  • web服务与Nginx
  • MySQL 主从复制
  • 二叉树的所有路径(回溯算法基础)
  • 蓝牙耳机开发--TWS蓝牙耳机双向通信充电盒设计
  • 滑动窗口模板
  • 《系统分析师-第三阶段—总结(六)》
  • Android Studio学习记录1
  • 软件测试全流程与主流测试方法详解:从理论到实战
  • Rabbitmq下载和安装(Windows系统,百度网盘)
  • 云服务器被黑客攻击应急响应与加固指南(上)
  • Swiper 在 Vue 中的使用指南
  • 用Python做有趣的AI项目5:AI 画画机器人(图像风格迁移)
  • Atcoder Help 有关Atcoder 的介绍-1 涨分规则
  • docker安装Canal1.1.5,MySQL5.7踩坑
  • 企业架构之旅(2):解锁TOGAF ADM
  • 对谈|李钧鹏、周忆粟:安德鲁·阿伯特过程社会学的魅力
  • 庆祝中华全国总工会成立100周年暨全国劳动模范和先进工作者表彰大会隆重举行,习近平发表重要讲话
  • 程璧“自由生长”,刘卓辉“被旋律牵着走”
  • 当代视角全新演绎,《风雪夜归人》重归首都剧场
  • 俄总统助理:普京与美特使讨论了恢复俄乌直接谈判的可能性
  • 共话城市自然之美,“微观黄浦”自媒体网络大V沙龙首场活动举行