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, 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"

递归读取前面的数。注意读取时边界的问题

class Solution {
public:
    string cv(int num) {
        string t = "";
        while(num > 0) {
            t += (char)(num % 10 + ‘0‘);
            num /= 10;
        }
        reverse(t.begin(), t.end());
        return t;
    }
    string countAndSay(int n) {
        if (n == 1) return "1";
        else {
            string k = countAndSay(n - 1);
            string tmp("");
            int len = k.length();
            if (len == 1) return "11";
            int num = 1;

            for (int i = 1; i < k.length(); ++i) {
                if(k[i] == k[i - 1]) {
                    num++;
                    if (i == k.length() - 1) {
                        tmp += cv(num);
                        tmp += k[i - 1];
                    }
                }
                else {
                    tmp += cv(num);
                    tmp += k[i - 1];
                    num = 1;
                }
            }
            if (num == 1) {
                tmp += cv(num);
                tmp += k[len - 1];
            }
            //cout<<tmp<<"-"<<k<<endl;
            return tmp;
        }
    }
};

数字转字符串还有 std::to_string(int n)这东西

时间: 2024-08-05 02:44:28

38. Count and Say的相关文章

leetCode 38. Count and Say 字符串

38. Count and Say The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 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" 

38. Count and Say序列 Count and Say

The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 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

38. Count and Say(C++)

The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 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

Java [leetcode 38]Count and Say

题目描述: The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 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.

leetCode 38.Count and Say (计数和发言) 解题思路和方法

Count and Say The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 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" o

[LeetCode 38] Count and Say

题目链接:count-and-say /** * The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 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 on

38. Count and Say - Unsolved

https://leetcode.com/problems/count-and-say/#/description The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11.11 is read off as "two 1s" or 21.21 is re

LeetCode 38 Count and Say(字符串规律输出)

题目链接:https://leetcode.com/problems/count-and-say/?tab=Description 1—>11—>21—>1211—>111221—>312211—>…. 按照上面的规律进行求解出第n个字符串是什么. 规律:相连的数字有多少个然后添加上这个数字 参考代码: package leetcode_50; /*** * * @author pengfei_zheng * 按照规律进行求解字符串 */ public class So

38. Count and Say [easy] (Python)

题目链接 https://leetcode.com/problems/count-and-say/ 题目原文 The count-and-say sequence is the sequence of integers beginning as follows: 1, 11, 21, 1211, 111221, ... 1 is read off as "one 1" or 11. 11 is read off as "two 1s" or 21. 21 is re

[leedcode 38] Count and Say

The count-and-say sequence is the sequence of integers beginning as follows:1, 11, 21, 1211, 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