蒟蒻求助
查看原帖
蒟蒻求助
750588
power_man楼主2022/10/12 20:53
#include<iostream>
#include<cstring>
using namespace std;
char a[114514],b[114514];
int l=1,zuan=0,cd,k=0;
int changdu(char a[],int stt){
	int shu=0;
	while(a[stt]>='0'&&a[stt]<='9'){
		shu*=10;
		shu+=(int)(a[stt]-'0');
		stt++;
		k++;
	}
	return shu;
}

void zh(int st,char a[],int ed,int cs){
	for(int i=0;i<cs-1;i++){//次数 
		for(int j=st;j<ed;j++){
			b[zuan]=a[j];//存入 
			zuan++;
		}
	}
	return;
}
void s(char a[],int endd){
	int remember=0,theend,bim=1;
	for(int i=0;i<endd;i++){
		if(a[i]=='['&&a[i+1]>='0'&&a[i+1]<='9'){//如果等于[ 
		remember=i;//记录最后一个[ 
		l*=changdu(a,remember+1);//记录个数 
	}
	else if(a[i]==']'&&bim){
		theend=i;
		zh(remember+2+k,a,theend,l);
		bim=0;//避免重复转换 
		l=1;//重置 
	}else if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z')){
		b[zuan]=a[i];
		zuan++;//不是就进位 
		bim=1;//判断条件回溯 
		k=0;
	}
}
return;
}
int main(){
	cin>>a;
	cd=strlen(a);
	s(a,cd);
	cd=strlen(b);
	for(int i=0;i<cd;i++)
	cout<<b[i];
	return 0;
}

输入ac[11fen] 输出 acfen1fen1fen1fen1fen1fen1fen1fen1fen1fen1fen 我是菜鸡,代码可能有些乱,谢谢

2022/10/12 20:53
加载中...