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.
?
public class Solution { public String countAndSay(int n) { String s = "1"; if (n == 1) { return s; } for (int i = 2; i <= n; i++) { int count = 0; char ch = 0; StringBuilder sb = new StringBuilder(); for (int j = 0; j < s.length(); j++) { char c = s.charAt(j); if (0!=count && c==ch) { count++; } else { if (0!=count) { sb.append(count).append(ch); } count = 1; ch = c; } } sb.append(count).append(ch); s = sb.toString(); } return s; } }
?
原文:http://hcx2013.iteye.com/blog/2218514