码迷,mamicode.com
首页 > 其他好文 > 详细

LintCode_420 报数

时间:2016-05-02 13:02:09      阅读:205      评论:0      收藏:0      [点我收藏+]

标签:

题目

报数指的是,按照其中的整数的顺序进行报数,然后得到下一个数。如下所示:

1, 11, 21, 1211, 111221, ...

1 读作 "one 1" -> 11.

11 读作 "two 1s" -> 21.

21 读作 "one 2, then one 1" -> 1211.

C++代码

string countAndSay(int n) {
	// Write your code here
	string s1 = "1";
	string s2 = "";
	string s3 = "";
	int i;
	int j;
	for (i = 0; i < n; ++i)
	{
		int times = 0;
		char val = s1.front();
		for (j = 0; j < s1.size(); ++j)
		{
			s3 = "";
			if (val == s1[j]) times++;
			else
			{
				
				s3 = val + s3;
				s3 = (char)(times + ‘0‘) + s3;
				s2 += s3;
				s3 = "";
				val = s1[j];
				times = 1;
			}
		}
		s3 = val + s3;
		s3 = (char)(times + ‘0‘) + s3;
		s2 += s3;
		s1 = s2;
		s2 = "";
	}
	return s1;
}

  

LintCode_420 报数

标签:

原文地址:http://www.cnblogs.com/Smallhui/p/5452114.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!