这样修改就能在LeetCode通过了

来源:6-2 复原IP地址-代码演示

Meskjei

2019-04-21

let result = [];
    function search(cur, sub){
        // 当字符串大于12时肯定不能生成一个合法的IP地址
        if(sub.length > 12){
            return;
        }
        // 当当前数组中元素为4且拼接起来恰好需要处理的字符串,则将其加入result数组
        if(cur.length === 4 && cur.join('') === s){
            result.push(cur.join('.'));
        } else {
            // 否则,分别取出代码前1、2、3位进行递归处理
            // 由于剩余的字符串长度不一定大于等于3,所以对于长度还需要进行最小值的判断
            for(let i=0,length=Math.min(3, sub.length);i<length; i++){
                let temp = sub.slice(0, i+1);
                // 若数值大于255,则不可能形成合法IP地址
                if(parseInt(temp) < 256){
	                // 分割出的字符串若长度大于1,则第一位不允许为0
                    if(temp.length > 1 && temp[0] === '0'){
                        continue;
                    }
                    search(cur.concat([temp]), sub.slice(i+1));
                }
            }
        }
    }
    search([], s);
    return result;
写回答

2回答

aaayumi555

2021-08-01

哎好无语 买课还总是出错 出错又不重新录

0
0

快乐动起来呀

2019-04-21

课程的源码有修改哈,是可以通过leetcode的,你这个代码可以贡献到git issue哈,对于优秀的代码是给予奖励的

0
0

JavaScript版 数据结构与算法

填补前端同学的算法短板,掌握面试中最常见的算法与数据结构

2467 学习 · 395 问题

查看课程