题目来源于力扣–https://leetcode-cn.com/leetbook/read/top-interview-questions-easy/xnpvdm/
当时想用c语言实现,但是没有想到好的方法,就用java来实现。
原理就是,首先将字符串首位元素取出,依次和后边的元素进行比较,
1、如果相等我们就用一个计数器count来保存出现的次数,每出现一次,计数器就加一。
2、如果遇到不相等的元素,首先将计数器count和元素添加进字符串,然后将计数器置为0,将当前元素保存继续判断1。
3、直到字符串结束。
此时就可以用双层循环,一层控制n,一层控制字符串长度。
代码如下:
public String countAndSay(int n) {
// 临时字符串
StringBuilder str;
// 初始化字符串
StringBuilder temp = new StringBuilder("1");
// 计数器
int count;
// 如果为1直接返回
if(n==1){
return "1";
}
// 非1的情况,所以只需要循环n-1次,第一次肯定是"1",这一次不需要进行了。
for(int k=1;k


