LeetCode之Count and Say
生活随笔
收集整理的這篇文章主要介紹了
LeetCode之Count and Say
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、題目
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. 1112211?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"Exapmle
?
// 1 1// 2 11// 3 21// 4 1211// 5 111221// 6 312211// 7 13112221 ??
?
2、代碼實現
public class Solution {public String returnLast(String s) {if (s == null || s.length() == 0)return null;String result = "";int length = s.length();if (length == 1) {return "1" + s;}int count = 1;int init = s.charAt(0);for (int i = 1; i < s.length(); i++) {if (s.charAt(i) == s.charAt(i - 1)) {count++;if (i == length - 1) {char ss = s.charAt(i - 1);result = result + count + s.charAt(i - 1);}} else {char ss = s.charAt(i - 1);result = result + count + s.charAt(i - 1);count = 1;if (i == length - 1) {result += ("1" + s.charAt(i));}}}return result;}public String countAndSay(int n) {if (n <= 0)return null;if (n == 1) return "1";else {return returnLast(countAndSay(n - 1));}}
} ?
?
3、總結
1、用遞歸方法
2、我們遞歸的時候,先實現默認包含字符串,如何得到下一個字符串,這也是我們需要把每次得到的結果遞歸,所以,我們先寫個函數簡單實現從這個字符串如果得到下一個字符串
3、我們在寫遞歸公共函數的實現時候,要注意,末尾和數字前一位是否相同和不同的情況。
總結
以上是生活随笔為你收集整理的LeetCode之Count and Say的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LeetCode之Remove Elem
- 下一篇: C语言之获取32字节随机数的字符串