2025团体程序设计天梯赛L2 算式拆解

题目:L2-053 算式拆解 - 团体程序设计天梯赛-练习集

题意:给定一个算术式,”每个操作及其对应的两个操作对象都被一对圆括号 () 括住“  然后按优先级找到优先级最高的括号内部 将内部计算式输出 然后”前面步骤中获得的结果不必输出 “前面步骤中获得的结果不必输出。例如在样例中,计算了 2+3 以后,下一步应该计算 5*4,但 5 是前一步的结果,不必输出,所以第二行只输出 *4 即可。” 样例:(((2+3)*4)-(5/(6*7)))
 

思路:通过两个指针 找到第一个右括号 和该右括号匹配的最近的左括号 那么现在所找到的两括号内的算术式一定是优先级最高的 将其输出 然后使用replace删除包含括号的语句( replace(l,r-l+1,"" )最后就会按优先级依次输出所以算术式,所以用双指针来匹配括号即可 代码如下:

#include<bits/stdc++.h>
using namespace std;
int main()
{
    string s;
    cin>>s;
    while(s!="")
    {
        int l = 0,r=0;
        while(s[r]!=')') r++;
        l = r;
        while(s[l]!='(') l--;
        for(int i=l+1;i<r;i++) cout<<s[i];
        cout<<endl;
        s.replace(l,r-l+1,"");
    }
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值