具体问题,LEETCODE 第 17 题(简单难度) https://leetcode-cn.com/problems/letter-combinations-of-a-phone-number/submissions/
/**
* @param {string} digits
* @return {string[]}
*/
var letterCombinations = function(digits) {
//1. 建立数字和字母的映射 2~9
let map=['','','abc','def','ghi','jkl','mno','pqrs','tuv','wxyz']
//2. 字符串转数组,使其可遍历 23=>[2,3]
let nums = digits.split('')
//3. 保存数字映射后的内容 [2,3]=>['abc','def']
let code = []
nums.forEach(item=>{
if(map[item]){
code.push(map[item])
}
})
let comb = (arr)=>{
let tmp=[]
for(let i=0;i<arr[0].length;i++){
for(let j=0;j<arr[1].length;j++){
tmp.push(`${arr[0][i]}${arr[1][j]}`)
}
}
arr.splice(0,2,tmp)
if(arr.length>1){
comb(arr)
}
else{
return arr[0]
}
return arr[0]
}
return comb(code)
};
执行出错信息:
Line 19: TypeError: Cannot read property 'length' of undefined
执行结果 & 本地环境可通过,提交代码时运行时错误,如何解决?
1
leishi1313 2019-07-01 03:51:57 +08:00 via Android
你这 digits 是空的时候就会报错了吧
|
2
wenzichel 2019-07-01 09:58:15 +08:00
当输入一个数字时会报错,`letterCombinations (2)`
|
3
jmc891205 2019-07-01 10:23:20 +08:00
leetcode 能看到出错的 case 的 input 是什么 自己去 debug 就好了
有的 OJ 看不到 那才叫一个郁闷 |
4
KuroNekoFan 2019-07-01 12:09:27 +08:00
这不是 medium 难度的么
|
5
parrotdance 2019-07-01 13:46:27 +08:00
执行代码是仅用一个用例测试. 而提交代码会使用多个用例测试, 出错证明你的代码无法应对某种特殊情况, 需要回头修改.
|
6
flyingghost 2019-07-01 17:42:48 +08:00
|
7
good1uck OP @KuroNekoFan 打错了
|