按规律生成string
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
. 1个1
11
is read off as "two 1s"
or 21
. 2个1
21
is read off as "one 2, then one 1"
or 1211
. 1个2,1个1
Given an integer n
, generate the n
th sequence.
Given n = 5
, return "111221"
.
public String countAndSay(int n) {
if(n <= 0) {
return null;
}
String result = "1";
while(--n > 0) {
int count = 1;
char last = result.charAt(0);
StringBuilder sb = new StringBuilder();
for(int j = 1; j < result.length(); j++) {
if(result.charAt(j) == last) {
count++;
} else {
sb.append(count);
sb.append(last);
count = 1;
last = result.charAt(j);
}
}
sb.append(count);
sb.append(last);
result = sb.toString();
}
return result;
}
思路:
按照规律分析。注意初始化。