第二题
模拟即可。先扫一遍乘除,再扫一遍加减,用一个sum记录顺序即可。
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int N=1000010;
int a[N],t,sum;
char c[N];
int main()
{
    int n;
    string s;
    cin>>n>>s;
    for(int i=0;i<s.size();i++)
        if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/') c[++t]=s[i];
    for(int i=1;i<=t;i++)
        if(c[i]=='*'||c[i]=='/') a[i]=++sum;
    for(int i=1;i<=t;i++)
        if(c[i]=='+'||c[i]=='-') a[i]=++sum;
    sum=0;
    for(int i=0;i<s.size();i++)
    {
        cout<<s[i];
        if(s[i]=='+'||s[i]=='-'||s[i]=='*'||s[i]=='/')
            printf("[%d]",a[++sum]);
    }
    return 0;
}