
具体问题,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 执行代码是仅用一个用例测试. 而提交代码会使用多个用例测试, 出错证明你的代码无法应对某种特殊情况, 需要回头修改. |
7 good1uck OP @KuroNekoFan 打错了 |