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

count and say

时间:2014-10-27 22:54:51      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   for   sp   div   on   

 1 ```
 2 class Solution{
 3     string result;
 4     public:
 5     //根据数组前一个数,count and say 构造出后一个数
 6         void generate(string s,string &result)
 7         {
 8             result=string();
 9             string::iterator i=s.begin();
10             while(i != s.end())
11             {
12                 char cur=*i;
13                 int count=1;
14                 i++;
15                 while(i != s.end() && *i == cur)
16                 {
17                     count++;
18                     i++;
19                 }
20                 result.push_back(count+0);
21                 result.push_back(cur);
22 
23             }
24 
25         }
26         //n相当于数组的下标,n是几就调用上面的函数几次,这样就反复调用,每次都以前一个为参数,得到答案
27         string countAndSay(int n){
28 
29             for(int i=1;i<n;i++)
30             {
31                 
32                 generate(result,result);
33             }
34             return result;
35         }
36 };
37 
38 ```

首先,我们发现一点,那个数组中前一个数字按照count and say的方式译码的结果就是后一个数,那么我先写了一个函数,功能是给定前一个数,计算出后一个数。

那么要实现的是求出第n个数,直接循环n-1次,每次的输入是上一次的输出即可。

count and say

标签:style   blog   io   color   ar   for   sp   div   on   

原文地址:http://www.cnblogs.com/gaoduan/p/4055218.html

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