题解 洛谷P1928【外星密码】
\(Sol\)
这道题目我们可以用递归来解决。
每次枚举到中括号,就继续递归下去。
文字说不太清楚,具体解释看代码。
\(Code\)
#include<bits/stdc++.h>
using namespace std;
inline string Read()//递归函数
{
register string S,Plus;
S="";//返回的字符串
register char C;
register int X;
while(cin>>C)
{
if(C=='[')
{
cin>>X;//输入重复遍数
Plus=Read();//进行递归
while(X--)
{
S+=Plus;//不断重复加入
}
}
else
{
if(C==']')
{
return S;//返回
}
else
{
S+=C;//如果不是中括号,我们就把它加入字符串中
}
}
}
}
int main(void)
{
cout<<Read()<<endl;//简短易懂的主函数
return 0;
}
不要妄图追上西坠的太阳,而是要在黎明前就等着它!