复原 IP 地址

给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。

示例:

输入: "25525511135"
输出: ["255.255.11.135", "255.255.111.35"]
var restoreIpAddresses = function(s) {
    let fun = getObj();
    fun.findOut(s, []);
    return fun.res;
};

var getObj = function() {
    let res = [];
    function findOut(str, arr) {
        if (!str.length && arr.length === 4) return res.push(arr.join('.'));
        if (arr.length === 4) return;
        let temp = '', tempArr = str.split('');
        for (let i = 0; i < 3; i++) {
            temp = tempArr.pop() + temp;
            if (isValid(temp)) {
                let a = [...arr];
                a.unshift(temp);
                findOut(tempArr.join(''), a);
            }
        }
    }
    return {
        findOut,
        res
    }
}

var isValid = function(s) {
    return Number(s) < 256 && Number(s).toString() === s;
}

Last updated