The count-and-say sequence is the sequence of integers beginning as follows:
1, 11, 21, 1211, 111221, ...
1
is read off as "one
1"
or 11
.
11
is read off as "two
1s"
or 21
.
21
is read off as "one
2
, then one 1"
or 1211
.
Given an integer n, generate the nth sequence.
Note: The sequence of integers will be represented as a string。
原题链接:https://oj.leetcode.com/problems/count-and-say/
能够看出,后一个数字是前个数字的读法,21读作1个2,先写下12,1个1,再写下11,连起来1211.
public static String countAndSay(int n) { if(n <= 0) return null; String str = "1"; int count = 1; for(int i=0;i<n-1;i++){ StringBuilder builder = new StringBuilder(); for(int j=0;j<str.length();j++){ if(j<str.length()-1 && str.charAt(j)==str.charAt(j+1)) count++; else{ builder.append(count + "" + str.charAt(j)); count = 1; } } str = builder.toString(); } return str; }