A1140 Look-and-say Sequence [模拟]

在这里插入图片描述
题目大意:给两个数字D和n,第一个序列是D,后一个序列描述前一个序列的所有数字以及这个数字出现的次数,比如D出现了1次,那么第二个序列就是D1,对于第二个序列D1,第三个序列这样描述:D出现1次,1出现1次,所以是D111……以此类推,输出第n个序列~

#include<iostream>
#include<vector>
#include<map>
#include<string>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<set>
#include<queue>
#include<unordered_set>
using namespace std;
int main()
{
	string s; int n, i, j;
	cin >> s >> n;
	for (int cnt = 1; cnt < n; cnt++)
	{
		string t;
		for (i = 0; i < s.size(); i=j)
		{
			for (j = i + 1; j < s.size(); j++)
			{
				if (s[j] != s[i])
					break;
			}
			t += s[i] + to_string(j - i);
		}
		s = t;
	}
	cout << s;
	return 0;
}
posted @ 2020-08-14 16:42  _Hsiung  阅读(48)  评论(0编辑  收藏  举报