zoukankan      html  css  js  c++  java
  • LeetCode38.报数

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

    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"

    答案参考:
    /**
     * @param {number} n
     * @return {string}
     */
    var countAndSay = function(n) {
        let ans = "1"
        let i = 1
        while(i < n) {
            ans = say(ans)
            i++
        }
        return ans
    };
    
    function say(s){
        let curChar = s[0]
        let curCount = 1
        let ans = ""
        for (let i = 1; i < s.length; i++){
            if (s[i] == curChar){
                curCount++
            } else {
                ans += curCount + curChar
                curChar = s[i]
                curCount = 1
            }
        }
        ans += curCount + curChar
        return ans
    }
  • 相关阅读:
    导航控制器的出栈
    UIPickView的基本使用
    多控制器
    通过Xib加载控制器的View
    从StoryBoard加载控制器
    模仿UIApplication单例
    LaunchScreen原理
    UIWindow
    指定初始化的运用
    零长度数组在内核中的运用
  • 原文地址:https://www.cnblogs.com/lhh520/p/10392743.html
Copyright © 2011-2022 走看看