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.
1 public class Solution { 2 String lastString; 3 public String countAndSay(int n) { 4 if (n==0) { 5 return lastString; 6 } 7 lastString="1"; 8 if (n==1) { 9 return lastString; 10 } 11 12 for (int i = 2; i <=n ; i++) { 13 int count=0; 14 String currsString=""; 15 for (int j = 0; j < lastString.length(); j++) { 16 if (j==0||lastString.charAt(j)==lastString.charAt(j-1)) { 17 ++count; 18 }else { 19 currsString=currsString+count+lastString.charAt(j-1); 20 count=1; 21 } 22 } 23 currsString=currsString+count+lastString.charAt(lastString.length()-1); 24 lastString=currsString; 25 } 26 return lastString; 27 } 28 }