`

Count and Say

阅读更多
The count-and-say sequence is the sequence of integers beginning as follows:
1, 11, 21, 1211, 111221, ...

1 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 sequence.

Note: The sequence of integers will be represented as a string.

一道很有意思的题目,第一个状态为1,第二个状态为11(一个1),第三个状态为21(两个1),第四个状态为1211(一个2和一个1),第五个状态为111221(一个1,一个2,两个1),. . .,让我们找到第n个状态。我们可以从第一个状态开始处理,一直衍生到第n个状态。当然状态衍生下一代时,我们从第一个数子开始比较,用一个计数counter来记录相同数字的个数,遇到不同的就讲当然counter的值和当然数字加入到字符串中,同时将counter置1,这样一直遍历完当前的状态,从而得到下一个状态。代码如下:
public class Solution {
    public String countAndSay(int n) {
        if(n <= 0) return "";
        String result = "1";
        int i = 1;
        while(i < n) {
            StringBuilder sb = new StringBuilder();
            int count = 1;
            for(int j = 1; j < result.length(); j++) {
                if(result.charAt(j) == result.charAt(j - 1)) {
                    count ++;
                } else {
                    sb.append(count);
                    sb.append(result.charAt(j - 1));
                    count = 1;
                }
            }
            sb.append(count);
            sb.append(result.charAt(result.length() - 1));
            result = sb.toString();
            i ++;
        }
        return result;
    }
}
分享到:
评论

相关推荐

    LeetCode原题Count and Say

    Leetcode原题Count and Say count-and-say序列是整数序列,前五个术语如下: 1. 1 2. 11 3. 21 1211 5. 111221 1被读作“1”或11。 11被读作“两个1”或21。 21被读作“一个2,然后一个1”或1211。 给定整数n,...

    牛津小学英语BB 教材分析PPT学习教案.pptx

    2B的每个单元则有四个板块,与1B相比,去掉了"Look and read"板块,而增加了更多互动性的活动,如Draw and say/Act and say/Count and say/Play a game/Do a survey。 《活动手册·1B/2B》作为配套教材,每个单元都...

    js-leetcode题解之38-count-and-say.js

    js js_leetcode题解之38-count-and-say.js

    python-leetcode面试题解之第38题外观数列-python题解.zip

    在LeetCode平台上,面试题38(也称为"Count and Say")是关于字符串处理的一个有趣问题,被称为“外观数列”。这道题目的目标是根据给定的数字序列构建一个新的序列,其中每个数字表示原序列中连续相同数字的个数。...

    c++-c++编程基础之leetcode题解第38题外观数列.zip

    第38题,名为“外观数列”(Count and Say),是一道有趣的题目,旨在考察程序员对字符串处理和迭代的理解。在这个问题中,我们需要构建一个序列,其中每个数字都是前一个数字的描述。 外观数列的定义如下:序列1...

    三英(上册)Unit6__第1课时教学课件.ppt

    “Count and say”环节旨在训练学生的计数能力,通过提问“What’s missing?”(少了什么?),让学生在一系列物品中识别缺失的部分,比如“six balloons, three books, one birthday cake, two pencil-boxes”(六...

    一年级上册英语ModuleUnitHowmany|外研社一起课件PPT学习PPT学习教案.pptx

    接下来,通过“Count and say how many”的活动,孩子们被引导进行实际的计数练习。例如,“How many? How many?”这样的问题鼓励孩子们数出物品的数量,并用英语回答。这种方式不仅帮助他们学习数字,还能提高他们...

    C语言基础-C语言编程基础之Leetcode编程题解之第38题外观数列.zip

    “外观数列”(Count and Say Sequence)是指一个序列,它的第n项是由前一项生成的。生成规则如下:读取上一项中的每一个数字,然后计数该数字在上一项中出现的次数,最后按照这个顺序写出计数结果。例如,序列的第...

    Unit 6 Happy birthday!Part A第一课时课课练及答案【含听力】.doc

    这篇文档是针对小学英语课程的一份课后练习,主题为"生日快乐",具体是Unit 6 Part A的第一课时,包含Let's talk和Count and say两个部分。这份练习主要训练学生的听力理解能力和基础语法知识,包括句型识别、数量...

    六合区一小三年级英语下册Unit5Whattimeisit教案湘少版(三起).pdf

    Part A Let's talk&Count and say 1. 学习目标:学习单词"plate",掌握"How many ⋯ ?"句型在询问数量中的应用,并用1-5的英文数字进行回答。同时,强调对他人表达生日祝福和关爱妈妈的礼仪教育。 2. 教学重难点...

    Lintcode-java版本

    - Count and Say(计数和读法):一种涉及生成下一个字符串序列的方法。 - Longest Common Prefix(最长公共前缀):处理字符串数组中的公共前缀问题。 - Simplify Path(简化路径):使用栈处理文件路径问题。 ...

    数据结构与算法leetcodelintcode题解1

    - 计数和说(Count and Say)。 2. **数组**: - 删除数组中的指定元素。 - 寻找数组中和为 K 的子数组。 - 找到最接近目标和的子数组。 - 恢复旋转排序数组。 - 排除自身的产品。 - 分割数组使奇数和偶数...

    算法刷题笔记leetcode/lintcode

    - Count and Say(猜数字序列) - **Integer Array**(整型数组操作) - Remove Element(移除元素) - Zero Sum Subarray(连续子数组的最大和) - Subarray Sum K(子数组总和等于K) - Subarray Sum Closest...

    LeetCode解题总结

    3.12 Count and Say 3.13 变位词 3.14 简化系统路径 3.15 最后一个单词的长度 3.16 反转字符串中的单词 3.16.1 字符串前后和中间可能存在多个空格 3.16.2 不存在前后和中间的多余空格 3.17 一个编辑距离 4. 栈 4.1 ...

    LeetCode最全代码

    I'll keep updating for full summary and better solutions. Stay tuned for updates. (Notes: "馃摉" means you need to subscribe to [LeetCode premium membership](https://leetcode.com/subscribe/) for the ...

    _leetcode-python.pdf

    - Count and Say: 第n个数是“1”,“21”,“1211”,“111221”等描述的下一个数。 - Combination Sum: 找出所有相加之和为特定值的组合。 - First Missing Positive: 找出数组中缺失的最小正数。 - Trapping Rain...

    leetcode中国-leetcode:leetcode刷题

    leetcode中国 我自己的leetcode刷题记录 ###[20150920] ...count and say , easy , 模拟 Anagrams 字符串处理,map Simplify Path,字符串处理,stack Length of Last Word,字符串处理.细节题 Rever

    leetcode答案-LeetCode:Swift中的LeetCode

    leetcode 答案LeetCode LeetCode in Swift 这个Repo 用来存下我在LeetCode ...Count and Say Easy #53 Maximum Subarray Easy #66 Plus One Easy #70 Climbing Stairs Easy #83 Remove Duplicates from Sorted L

    lovely-nuts:这是一个可爱的坚果

    Practice-Leetcode 这是一个Chinese School Girl:China:用来练习leetcode的文档.每道下面的题都有详细的解题思路,和知识点分析,尽请参考。 找实习的小伙伴也可以参考我的Tech-blog...038.Count and Say 递归 040.C

Global site tag (gtag.js) - Google Analytics