模拟解法,小数据能过,大数据炸掉QAQ求助大佬
查看原帖
模拟解法,小数据能过,大数据炸掉QAQ求助大佬
247430
Antonio_楼主2020/12/24 18:33
#include<bits/stdc++.h>
#include<cstring>
using namespace std;
string s,s1,s2;
int len,num1,num2,num;
int wok(int x){
	int k=0;
	while(x){
		k=k*10+x%10;
		x/=10;
	}
	return k;
}
int main(){
//	freopen("coa.in","r",stdin);
//	freopen("coa.out","w",stdout);
	cin>>s;
	len=s.length();
//	cout<<s.max_size()<<endl<<s1.max_size()<<endl<<s2.max_size();
	for(int i=0;i<len;i++){
		if(s[i]=='['){
			num1=i;
		}
		if(s[i]==']')num2=i;
		if(num2!=0)break;
	}
	for(int i=num2;i>=0;i--){
		if(s[i]>='0'&&s[i]<='9'){
			int p=i;
			while(s[i]>='0'&&s[i]<='9'){
				num=num*10+s[i]-'0';i--;
			}num=wok(num);
			num--;
		}
		if(!(s[i]>='0'&&s[i]<='9')&&s[i]!='['&&s[i]!=']'){
			s2+=s[i];s1+=s[i];
		}
		if(s[i]=='['){
			while(num>0){
				s2+=s1;
				num--;
			}
			s1=s2;
		}
	}
	int len=s2.length();//cout<<"/////"<<len<<"/////";
	for(int i=len-1;i>=0;i--)cout<<s2[i];
	return 0;
} 




2020/12/24 18:33
加载中...