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) {
if(n==1){ return "1";}
StringBuilder result=new StringBuilder();
result.append(1);
// System.out.println(result);
StringBuilder nextResult=new StringBuilder();
// System.out.println(result.charAt(0));
for(int i=1;i<n;i++){
char first=result.charAt(0);
int count=0;
for(int j=0;j<result.length();j++){
if(result.charAt(j)==first){
count++;
}else{
nextResult.append(count);
nextResult.append(first);
first=result.charAt(j);
count=1;
}
}
nextResult.append(count);
nextResult.append(first);
result=nextResult;
nextResult= new StringBuilder();
}
return result.toString();
}
}