//思路:两重循环,第一重循环循环个数,第二重循环判断已生成字符,或者增加数量,或者把数字和字符加上。
//答案用这个http://huntfor.iteye.com/blog/2059877(以下只是把ij换了下位置)。
public static String countAndSay(int n) {
if (n <= 0) {
return null;
}
String str = "1";
int num = 1;
for (int i = 0; i < n - 1; i++) {
StringBuilder sb = new StringBuilder();
//generate countAndSay based on sb
for (int j = 0; j < str.length(); j++) {
if (j + 1 < str.length() && str.charAt(j) == str.charAt(j + 1)) {
num++;
} else {
sb.append(num + "" + str.charAt(j));
num = 1;
}
}
str = sb.toString();
}
return str;
}
Leetcode 38,Count and say
最新推荐文章于 2021-10-15 01:07:30 发布