第二题
模拟即可。先扫一遍乘除,再扫一遍加减,用一个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; }