这又是一道让我们很囧的题,尤其是当中的第二个for循环。
我真的有些怀疑自己的智力是不是在下降,还是在真正的被封印,我觉得和2年前的都很大的差距。但是无论如何,我们必须要坚持战斗下去!战斗下去!我们仍然要相信我们自己。找到合适的策略,向前冲!!!
public String countAndSay(int n) {
if (n <= 0) {
return "";
}
String s = "1";
int num = 1;
for (int i = 0; i < n - 1; i++) {
StringBuilder sb = new StringBuilder();
for (int j = 0; j < s.length(); j++) {
if (j + 1 < s.length() && s.charAt(j) == s.charAt(j + 1)) {
num++;
} else {
sb.append(num + "" + s.charAt(j));
num = 1;
}
}
s = sb.toString();
}
return s;
}
中间的for循环,自己竟是这么的。。。
// int i = 1, count = 1, cnum = nchar[0] - '0';
// for (; i < nchar.length;) {
// if (nchar[i] == nchar[i - 1]) {
// cnum = nchar[i] - '0';
// count++;
// i++;
// } else {
// sb.append(count + "" + cnum);
// cnum = nchar[i] - '0';
// count = 1;
// i++;
// }
// }
// if (i == 1 || count != 1 || (i==nchar.length && count == 1)) {
// sb.append(count + "" + cnum);
// }