Leetcode #38. Count and Say 数数报数 解题报告

1 解题思想

这道题就是按照每一位读一下数字,然手输出
比如123就是1个1,1个2,一个3,输出111213嗯,也就是先输出个数,然后输出元素

做法就是扫描,统计了,统计连续相同的数字,毕竟Easy难度~~

2 原题

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.

Subscribe to see which companies asked this question

3 AC解

public class Solution {
    /**
     * 这道题就只能不断的统计然后输出了。。其他我不知道有啥数学规律了
     * */
    public String countAndSay(int n) {
        String start="1";
        int num=0,count=0,i=0;
        char tmp;
        while(n-->1){
            char chars[]=start.toCharArray();
            StringBuilder sb=new StringBuilder();
            i=0;
            while(i<chars.length){
                count=0;
                tmp=chars[i];
                while(i<chars.length && chars[i]==tmp){
                    count++;
                    i++;
                }
                sb.append(count+""+tmp);  
            }
            start=sb.toString();
        }
        return start;

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值