写点什么

leetcode38

  • 2022 年 5 月 16 日
  • 本文字数:461 字

    阅读完需:约 2 分钟

输入: 4

输出: "1211"

解释:当 n = 3 时,序列是 "21",其中我们有 "2" 和 "1" 两组,"2" 可以读作 "12",也就是出现频次 = 1 而 值 = 2;类似 "1" 可以读作 "11"。所以答案是 "12" 和 "11" 组合在一起,也就是 " **《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】** 1211"。

思路:难点可能在理解题意吧,理解之后模拟出来即可。具体见代码。

class Solution {

/**

* 难点:报数的概念理解

* 从 4->5 分析,将 4 个每一位拆开看(个数+数字),4=1211 => 1=11,2=12,11=21,所以 5=111221

* 模拟出来过程即可

*/

public String countAndSay(int n) {

String str = "1";

for (int i = 2; i <= n; i++) {

StringBuilder builder = new StringBuilder();

char pre = str.charAt(0);

int count = 1;

for (int j = 1; j < str.length(); j++) {

char c = str.charAt(j);

if (c == pre) {

count++;

} else {

builder.append(count).append(pre);

pre = c;

count = 1;

}

}

builder.append(count).append(pre);

str = builder.toString();

}

return str;

}

}

用户头像

还未添加个人签名 2022.04.13 加入

还未添加个人简介

评论

发布
暂无评论
leetcode38_程序员_爱好编程进阶_InfoQ写作社区