题解 洛谷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;
}
posted @ 2020-08-12 20:13  Bushuai_Tang  阅读(336)  评论(0编辑  收藏  举报