90分,求调
  • 板块P1928 外星密码
  • 楼主herdzq
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/7 21:58
  • 上次更新2024/9/8 10:19:52
查看原帖
90分,求调
1139270
herdzq楼主2024/9/7 21:58
#include<bits/stdc++.h>
using namespace std;
string eh;
void dfs(string a){
	if(a[0]=='['){
		long long  o=0;
		string arps;
		int i;
		
		for( i=1;a[i]>='0'&&a[i]<='9'&&i<a.size();i++){
			arps+=a[i];
		}
		int len=arps.size();
		string oo;
		for( i=i;i<a.size();i++){
			oo+=a[i];
		}
		
		for(int i=0;i<len;i++){
			o+=(arps[i]-'0')*pow(10,(len-i)-1);
		}
		for(int i=1;i<=o;i++){
			dfs(oo);
		}
		return ;
	}
	for(int i=0;i<a.size();i++){
		if(a[i]!='['){
			if(a[i]==']'){
				continue;
			}
			printf("%c",a[i]);
			continue;
		}
		string  arps;
		int j;
		int o=0;
		for( j=i;i<a.size();j++){
			if(a[j]=='['){
				o++;
			}
			if(a[j]==']'){
				o--;
				if(o<=0){
					dfs(arps);
					break;	
				}
			}
			arps+=a[j];
		}
		i+=j-i;
	}
}
int main(){
	cin>>eh;
	dfs(eh);
	return 0;
}
2024/9/7 21:58
加载中...