力扣刷题日记 38. 外观数列

本文介绍了一道编程题——外观数列,由于数据范围N≤30,采用暴力模拟的方法即可轻松解决。博主在满课的间隙刷题并分享了解题思路和代码实现,代码中通过遍历和计数实现了数列的生成。尽管有人使用打表优化,但博主认为对于此数据范围,暴力法已经足够。最后,博主邀请读者一起刷题和交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目

在这里插入图片描述

当然还有一个数据范围条件 N <= 30

题解思路

		这几天几乎满课,题是刷了但是没时间写题解了QWQ,今天的每日一题的难度是中等,开始看题的时候,读
	完题目没看数据范围,还以为有点麻烦,但看了一下N <= 30,那不好意思,暴力模拟他这个操作的过程就行hh
	hhh,还是挺简单就搞定了,当然后面写完看题解居然有人打表来写?虽然感觉没必要,但那样就非常快了。

代码

class Solution {
    public String countAndSay(int n) {
        String ans = "1";//存上一次处理完的结果
        for(int i = 2;i <= n;i++)
        {
            String now = "";//记录这一次处理的结果
            int times = 0;//计算元素的次数
            char number = ans.charAt(0);//被计算次数的元素
            for(int j = 0; j < ans.length();j++)
            {
                if(number == ans.charAt(j))//相等就次数+1
                {
                    times ++;
                }
                else{//不相等的话就把之前的结果加进去,然后换一个字符开始数次数
                    now += ""+times+number;
                    times = 1;
                    number = ans.charAt(j);
                }
                if(j == ans.length() - 1)//因为最后一次的不会被自动加进去,所以要特判一下这个情况
                {
                    now += ""+times+number;
                }
            }
            ans = now.trim();//.trim()方法可以去除前后空字符,这里只是预防万一的,因为之前出现过因此而报错的情况;
        }
        return ans;
    }
}

结语

如果有想一起每天互相监督刷题的小伙伴可以加上微信,咱们一起加油呀!也可以一起讨论讨论题目

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值