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



京公网安备 11010502036488号