比赛 |
清明时节雨纷纷,今天天气很晴朗 |
评测结果 |
AAAAAAAAAA |
题目名称 |
外星密码 |
最终得分 |
100 |
用户昵称 |
swttc |
运行时间 |
0.004 s |
代码语言 |
C++ |
内存使用 |
0.32 MiB |
提交时间 |
2017-04-07 19:53:41 |
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<stack>
#include<string>
#include<cstring>
using namespace std;
int kh,timea;
char c;
stack<int>timenum;
stack<string>ss;
string ans,tttt;
int main()
{
freopen("passworda.in","r",stdin);
freopen("passworda.out","w",stdout);
while(scanf("%c",&c)==1)
{
if(c=='\n') break;
if(kh>0)
{
string ts;
while(c!='['&&c!=']')
{
ts+=c;
scanf("%c",&c);
}
ss.push(ts);
}
if(c=='[')
{
kh++;
scanf("%d",&timea);
timenum.push(timea);
ss.push("[");
}
if(c==']')
{
kh--;
int x;
x=timenum.top();
timenum.pop();
string ts1,ts2;
while(!ss.empty()&&ss.top()!="[")
{
//ts1+=ss.top();
ts1=ss.top()+ts1;//绝对不能反着写,因为是字符串。
ss.pop();
}
ss.pop();
for(int i=1;i<=x;i++)
{
ts2+=ts1;
}
ss.push(ts2);
}
if(kh<=0)
{
while(!ss.empty()&&ss.top()!="[")
{
ans+=ss.top();
ss.pop();
}
}
if(c!='['&&c!=']') ans+=c;
}
cout<<ans;
return 0;
}