【編程題】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,依此類推
 *
 * 由此,得到原理,可以寫出相對應的函數
 */

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