这个题耗费了一个多小时的时间,和迷宫地图一样,写代码思路不严谨导致自己的答案总和正确答案有出入。。。
第一个问题:字符数组转数字不能用Integer.parseInt(Arrays.toString(chars))方法,因为toString()方式是将字符数组格式化为[1,2,3]这种格式,而不是将字符数组转为字符串!因此就不能通过Integer.parseInt(Arrays.toString(chars))方法将字符数组转为数字!而应该用以下方式:
//将字符数组转为一个数字
int res = 0;
for ( int i = 0; i < chars.length; i++ ){
int temp = chars[i]-'0';
// System.out.println(temp);
res = res*10+temp;
// System.out.println(res);
}
第二个问题:在判断满足条件的时候应该将ans++语句放在离判断语句最近的语句块中,这样能避免因过度的包装函数而导致漏判情况,此题就存在这种情况!!!例如:
存在漏判情况的答案为1617,代码如下: