Leetcode之-题38

题目

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.

题解

Java实现 类似于斐波拉契数列的生成,由前一个生成后一个,我的解法也是这个,下面附上AC代码

public String countAndSay(int n) {
        if(n == 0 || n == 1){
            return "1";
        }
        String res = "11"; //第一个答案
        for(int i = 2; i < n; ++i){
            res = getNextSay(res);
        }
        return res;

    }

    /**
    * 根据上一个答案获得下一个需要输出的Say
    */
    private String getNextSay(String res) {
        StringBuilder sb = new StringBuilder(); //返回答案
        int num = 1; //倍数
        char formerChar = res.charAt(0);
        for(int i = 1; i < res.length(); ++i){
            if(res.charAt(i) == formerChar){
                //下一个字符与上一个相同
                //倍数加一
                num++;
                continue;
            }else{
                //下一个字符与上一个字符不同
                //输出倍数个formerChar
                sb.append(Integer.toString(num) + formerChar);
                //更新
                formerChar = res.charAt(i);
                num = 1;
            }

        }
        sb.append(Integer.toString(num) + formerChar);
        return sb.toString();
    }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏微服务

聊一聊Javasript继承

  前前后后已经快写了2年左右javaScript,刚开始只是简单用于一些表单验证和操作dom节点,并没有深入的使用,随着渐渐的深入,开始不想去写重复的代码(懒...

314100
来自专栏小筱月

嵌套数组的合并,扁平化数组

对于 [ [], [], [], ...] 数组里嵌套数组,有个需求:将里面的数组元素都放到外层数组,变成 , , , ...

30030
来自专栏码云1024

JAVA数组练习

31060
来自专栏LeetCode

LeetCode SingleNumber I,II,III

Given a non-empty array of integers, every element appears twice except for one....

19800
来自专栏java学习

面试题24(写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab cba)

写一个函数,例如:给你的 a b c 则输出 abc acb bac bca cab cba? import java.util.ArrayList; ...

29360
来自专栏武培轩的专栏

剑指Offer-左旋转字符串

package String; /** * 左旋转字符串 * 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令...

30230
来自专栏菩提树下的杨过

java中的tuple实现

java中没有类似c#、scala中的tuple元组类,只能自己动手,丰衣足食了,见下面的代码: Tuple 抽象类 1 import java.util.O...

21550
来自专栏Java帮帮-微信公众号-技术文章全总结

Java案例-判断随机整数是否是素数

Java案例-判断随机整数是否是素数 ? 判断随机整数是否是素数 产生 100 个0-999 之间的随机整数,然后判断这100 个随机整数哪些是素数,哪些不是?...

50340
来自专栏Hongten

java中的移位运算符:<<,>>,>>>总结

value >>> num     --   num 指定要移位值value 移动的位数。

24350
来自专栏数据结构与算法

1545 最简单排序

个人博客:double.win 1545 最简单排序  时间限制: 1 s  空间限制: 1000 KB  题目等级 : 青铜 Bronze 题解 题目描述 D...

28260

扫码关注云+社区

领取腾讯云代金券