【编程题】LeetCode第38题,报数

报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:

1.     1
2.     11
3.     21
4.     1211
5.     111221
1 被读作  "one 1"  ("一个一") , 即 11。
11 被读作 "two 1s" ("两个一"), 即 21。
21 被读作 "one 2",  "one 1" ("一个二" ,  "一个一") , 即 1211。

给定一个正整数 n(1 ≤ n ≤ 30),输出报数序列的第 n 项。

注意:整数顺序将表示为一个字符串。

/**
 * 本题难点在于理解题目的意思,报数的概念很难理解,结合题意,得到
 * 1.     1            .1            (没个数)
 * 2.     11        .11            (没个数)
 * 3.     21        2.1            (2个1)
 * 4.     1211        1.1 1.2 1.1    (1个1和1个2和1个1)
 * 5.     111221    1.1 1.2 2.1    (1个1和1个2和2个1)
 *
 *
 * 1是1个1
 * 2是2个1
 * 3是1个2和1个1
 * 4是1个1和1个2和1个1
 * 5是1个1和1个2和2个1
 * 所以每一种就是它的上一种的读法,比如说2的上一个是1(读1个1),所以2=11,
 * 3的上一个是2(11)读做(2个1),所以3=21,依此类推
 *
 * 由此,得到原理,可以写出相对应的函数
 */

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章