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:
輸入: 4
輸出: "1211"
認真觀察可知,每個片段對應的都是幾個
什麼
的問題。那麼我們需要構建的迴圈,需要找到連續的字元都相同的子字串,求出這個字串的長度,加上字元,新增到新的字串中。如此迴圈直到字串結束。
public class demo05
string str = "1";
for (int i = 0; i < n-1; i++) else
}//此處可能不好理解,結合內層迴圈的if和else可知
//極限情況下如果str的最後乙個字元符合if條件,那麼在進行完if內的邏輯後,其實最後乙個字元是沒有被統計到新的字串中去的,
//這也是為什麼要讓count=1的原因
//else同if,比較容易理解。
str = sb.tostring();
}return str;
}public static void main(string args)
}
演算法 Josephus問題 報數遊戲
問題描述 有n 個人圍成一圈,按順序排號。從第乙個人開始報數 從 1開始 凡報到 5的人退出圈子,問最後留下的是原來第幾號的那位。例如 9個人圍成一圈,1號從第 1開始報數,5號首先退出圈子。接著6號從 1開始重新報數,1號退出圈子。接著2號從 1開始重新報數,7號退出圈子。然後從 8號開始重新報數...
Leetcode報數演算法與分析
leetcode報數 這題是到目前為止,第乙個有點意思的需要腦子的題。說句實話,筆者思考許久,最多寫了4個迴圈,最終還是被自己菜到,卑微地去向大佬們學習借鑑了一下思路,發現本題需要乙個 逆向思維 具體玄妙請看下文分解。廢話少說,上題幹 1 1 2 11 3 21 4 1211 5 111221 1 ...
每日演算法 洗牌演算法
給定乙個n個數的序列,設計乙個演算法將其隨機打亂,保證每個數出現在任意乙個位置的概率相同 也就是說在n 個的排列中,每乙個排列出現的概率相同 假設輸入為陣列num length 隨機選乙個數,放到num 0 中,再隨機選數,如果該數已經選過,重新選,直到該數未選過時放入num 1 中,以此類推,直到...