The count-and-say sequence is the sequence of integers with the first five terms as following:
1. 12. 113. 214. 12115. 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 term of the count-and-say sequence.
Note: Each term of the sequence of integers will be represented as a string.
Example 1:
Input: 1Output: "1"
Example 2:
Input: 4Output: "1211"
class Solution { public String countAndSay(int n) { String rst = "1"; for (int i = 1; i < n; ++ i) { int cnt = 0; char old = rst.charAt(0); StringBuilder tmp = new StringBuilder(); for (char c : rst.toCharArray()) { if (c != old) { tmp.append(cnt).append(old); old = c; cnt = 1; } else { ++ cnt; } } tmp.append(cnt).append(rst.charAt(rst.length() - 1)); rst = tmp.toString(); } return rst; }}