题目:
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.
思路:
对这些数字进行统计。
package string; public class CountAndSay { public String countAndSay(int n) { String s = "1"; while (--n > 0) { StringBuilder sb = new StringBuilder(); int len = s.length(); int count = 1; for (int i = 1; i <= len; ++i) { if (i < len && s.charAt(i) == s.charAt(i - 1)) { ++count; } else { sb.append((char)(count + '0')); sb.append(s.charAt(i - 1)); count = 1; } } s = sb.toString(); } return s; } public static void main(String[] args) { // TODO Auto-generated method stub CountAndSay c = new CountAndSay(); System.out.println(c.countAndSay(6)); } }