剑指 Offer II 087. 复原 IP

146 阅读1分钟

剑指 Offer II 087. 复原 IP

  • "0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,
  • 但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。
function restoreIpAddresses(s) {
  if (s.length > 12 || s.length < 4) return [];
  var res = [];
  var arr = [];
  f(0);
  return res;
  function f(j) {
    if (arr.length > 4) return;
    if (j === s.length && arr.length >= 4) {
      return res.push(arr.join("."));
    }
    var str = "";
    for (var i = j; i < s.length; i++) {
      str = str + s[i];
      if (
        Number(str) >= 0 &&
        Number(str) <= 255 &&
        (str[0] !== "0" || str === "0")
      ) {
        arr.push(str);
        f(i + 1);
        arr.pop();
      }
    }
  }
}