zoukankan      html  css  js  c++  java
  • 38. Count and Say

    The count-and-say sequence is the sequence of integers with the first five terms as following:

    1.     1
    2.     11
    3.     21
    4.     1211
    5.     111221
    

    1 is read off as "one 1" or 11.
    11 is read off as "two 1s" or 21.
    21 is read off as "one 2, then one 1" or 1211.

    Given an integer n where 1 ≤ n ≤ 30, generate the nth term of the count-and-say sequence.

    Note: Each term of the sequence of integers will be represented as a string.

    Example 1:

    Input: 1
    Output: "1"
    

    Example 2:

    Input: 4
    Output: "1211"
     

    AC code:

    class Solution {
    public:
        string countAndSay(int n) {
            vector<string> v;
            init(v, n);
            return v[n-1];
        }
        void init(vector<string>& v, int n) {
            v.push_back("1");
            for (int i = 1; i <= n; ++i) {
                string res = v[i-1];
                char c = res[0];
                string ans = "";
                int num = 1;
                for (int i = 1; i < res.length(); ++i) { 
                    if (res[i] == c) {
                        num++;
                        continue;
                    } else {
                        ans = ans + to_string(num) + c;
                        c = res[i];
                        num = 1;
                    } 
                }
                ans = ans + to_string(num) + c;
                v.push_back(ans);
            }
        }
    };
    
    Runtime: 8 ms, faster than 8.70% of C++ online submissions for Count and Say.
    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    Python3.5.2官方文档学习备忘录
    Linux下升级python版本
    役物,役于物
    各种编辑器添加注释快捷键
    Python3爬取百度百科(配合PHP)
    Python3向网页POST数据
    Python3爬取中文网址
    Python3批量爬取网页图片
    django中间件
    django创建上下文
  • 原文地址:https://www.cnblogs.com/h-hkai/p/9787086.html
Copyright © 2011-2022 走看看