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 条评论
登录 后参与评论

相关文章

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

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

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

3224
来自专栏机器学习入门

POJ 刷题系列:3006. Dirichlet's Theorem on Arithmetic Progressions

POJ 刷题系列:3006. Dirichlet’s Theorem on Arithmetic Progressions 传送门:3006. Dirichle...

1765
来自专栏Fish

内存对齐(Memory Alignment)

最近读文档,发现对内存对齐的概念不太明白。 内存对齐的原则: 数据成员对齐规则:结构(struct)(或联合(union))的数据成员,第一个数据成员放在o...

18010
来自专栏指尖下的Android

二进制的运算

在计算机中存储字节是定长的,即我们8、16、32位等等,6的二进制位为110,但如果在8位计算机中是00000110,高位补零

1493
来自专栏大数据学习笔记

Java程序设计(Java9版):第2章 数据类型与运算符(Data types and Operators)

第2章 数据类型与运算符(Data types and Operators) I think everybody in this country should ...

2255
来自专栏小筱月

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

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

702
来自专栏LeetCode

LeetCode SingleNumber I,II,III

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

1500
来自专栏Hongten

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

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

1315
来自专栏有趣的Python

算法与数据结构(二)附录:冒泡&插入&选择&希尔排序对比

冒泡排序 冒泡排序(Bubble Sort),是一种 计算机科学领域的较简单的 排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误...

2694
来自专栏码云1024

JAVA数组练习

2856

扫码关注云+社区