标签:i++ ringbuf class string amp 表示 color str ret
「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。前五项如下:
1. 1
2. 11
3. 21
4. 1211
5. 111221
1 被读作 "one 1" ("一个一") , 即 11。
11 被读作 "two 1s" ("两个一"), 即 21。
21 被读作 "one 2", "one 1" ("一个二" , "一个一") , 即 1211。
给定一个正整数 n(1 ≤ n ≤ 30),输出外观数列的第 n 项。
注意:整数序列中的每一项将表示为一个字符串。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-and-say
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
这题主要是分析题意
每一项都是对上一项的描述,比如n = 3时 为 12,那么我们n = 4时,就该表达的意思是描述n = 3的,所以应该是,1个2,1个1,所以就是1211
package Leetcode; public class Solution { public String countAndSay(int n) { if (n <= 0) return "-1"; String result = "1"; for (int i = 1; i < n; i++) { StringBuffer builder = new StringBuffer(); int index = 0; while (index < result.length()) { // 记录值 char val = result.charAt(index); // 记录连续位数 int count = 0; // 查找连续位数,碰到不相同的数字时停止。 while (index < result.length() && result.charAt(index) == val) { index++; count++; } // 追加连续位数到结果中 builder.append(String.valueOf(count)); // 追加连续位数的值到结果中 builder.append(val); } result = builder.toString(); } return result; } }
end
标签:i++ ringbuf class string amp 表示 color str ret
原文地址:https://www.cnblogs.com/CherryTab/p/12207222.html