希望代码比较简单
有以下几种数据
这本来是scratch的题,但我觉得大家可能很少用,所以我就来求一下c++代码吧
希望代码比较简单
有以下几种数据
这本来是scratch的题,但我觉得大家可能很少用,所以我就来求一下c++代码吧
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cmath>
#include<algorithm>
#include<string>
using namespace std;
string s;
void print(int l, int r) {//区间[l, r)
if(l==r) return;
if(s[l]=='('&&s[r-1]==')') {print(l+1, r-1); return;}
int out=0, pos=-1;
for(int i=r-1; i>=l; --i) {
if(s[i]==')') ++out;
if(s[i]=='(') --out;
if((s[i]=='+'||s[i]=='-')&&out==0) {pos=i; break;}
}
if((pos==l&&s[pos+1]!='(')||pos==-1) {
for(int i=l; i<r; ++i) printf("%c", s[i]);
printf(" ");
return;
}
print(l, pos); print(pos+1, r);
printf("%c ", s[pos]);
}
int main() {
getline(cin, s);
print(0, s.size());
return 0;
}