TODO:
1, logic: use helper function, to read once, and transform the str; the need to transform the string for n time
2, in the helper function, use StringBuilder and append(), to generate a new string from the old string. Remember to append the very last fragment. (eg. 11222, or 11111)
3, I benefit from the method used in remove duplicates question.
1st time 15'30'', not one-time bug-free, 2nd time, 5'38'' one-time bug-free
代码:
public class Solution {
public String countAndSay(int n) {
String str="1";
for(int i=1; i<n; i++){
str=readOnce(str);
}
return str;
}
private String readOnce(String str){
StringBuilder result = new StringBuilder();
int i=0, j=0;
for(; i<str.length(); i++){
if(str.charAt(i)== str.charAt(j)) continue;
else{
result.append(i-j);
result.append(str.charAt(j));
j=i;
}
}
result.append(i-j);
result.append(str.charAt(j));
return result.toString();
}
}