zoukankan      html  css  js  c++  java
  • count and say

     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次,每次的输入是上一次的输出即可。

  • 相关阅读:
    CentOS7安装(三)- 配置阿里云yum源
    OSQA的配置
    MySQL学习 (三) Limit-Distinct-Union
    MySQL学习(二)-字段类型及约束
    MySQL学习(一)-基本知识
    Python闭包
    软件测试面试常考点
    人生感悟
    常用的Linux命令
    细说php一些常见的知识点
  • 原文地址:https://www.cnblogs.com/gaoduan/p/4055218.html
Copyright © 2011-2022 走看看