题目
当然还有一个数据范围条件 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;
}
}
结语
如果有想一起每天互相监督刷题的小伙伴可以加上微信,咱们一起加油呀!也可以一起讨论讨论题目