剑指 Offer 46. 把数字翻译成字符串
class Solution {
private int sum = 0;
public int translateNum(int num) {
String numStr = String.valueOf(num);
if (numStr.length() == 1) {
return 1;
}
int[] d = new int[numStr.length()];
d[0] = 1;
int sub2 = Integer.parseInt(numStr.substring(0, 2));
if (sub2 <= 25 && sub2 >= 10) { -------- 这个地方要注意 06不算合法
d[1] = 2;
} else {
d[1] = 1;
}
for (int i = 2; i < numStr.length(); i++) {
String temp = numStr.substring(i - 1, i + 1);
int numTemp = Integer.parseInt(temp);
if (numTemp <= 25 && numTemp >= 10) {
d[i] = d[i - 1] + d[i - 2]; ----- 不是d[i-2] + 2
} else {
d[i] = d[i - 1];
}
}
return d[numStr.length() - 1];
}
}
剑指 Offer 46. 把数字翻译成字符串
最新推荐文章于 2024-04-26 09:02:35 发布