P1928 外星密码 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)
思路:递归处理,分类处理
代码:
#include<iostream>
#include<stack>
using namespace std;
#include <cstring>
char copl[20005];
string handle()
{
int n;
string s="", s1;
char str;
while (cin >> str )
{
if (str == '[')
{
cin >> n;//记录倍数
s1 = handle();//递归,每层递归的s不同,上层保持原来的
while (n--)
s += s1;
}
else
{
if (str == ']')
{
return s;
}
else {
s += str;
}
}
}
return s;//没有]最后统一return
}
int main()
{
cout << handle();
return 0;
}
总结:
退出循环要returns
递归,每层递归的s不同,上层保持原来的