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

  • 相关阅读:
    基于golang的分布式任务管理系统
    golang sql 包连接池分析
    Go web框架构建三层架构
    004-位置参数变量
    003_1-当前系统语言的相关知识
    003-环境变量
    002-自定义变量
    001--变量概述
    2017-07-04(sudo wc sort)
    优化分页的查询
  • 原文地址:https://www.cnblogs.com/gaoduan/p/4055218.html
Copyright © 2011-2022 走看看