尼采般地抒情

公告栏

此网站主题为本人手写主题,主题还在开发中……


作者:尼采般地抒情

站点信息

文章数目:296 篇
已运行时间:
目录
  1. 思路
  2. ts 代码

尼采般地抒情

尼采般地抒情

公告栏

此网站主题为本人手写主题,主题还在开发中……


作者:尼采般地抒情

站点信息

文章数目:296 篇
已运行时间:

思路

  • 长度为 12 位:最小单元位 3
  • 长度为 11 位:最小单元位 2
  • 其他情况的最小单元位有可能是 1

ts 代码

function restoreIpAddresses(s: string): string[] {
  // 保存所有符合条件的IP地址
  let r: any[] = [];
  // 分四步递归处理ip分段
  let search = (cur: any, sub: any) => {
    if (sub.length > 12) return;

    // 边界条件
    if (cur.length === 4 && cur.join("") === s) {
      r.push(cur.join("."));
    } else {
      // 正常的处理过程
      for (let i = 0, len = Math.min(3, sub.length), tmp; i < len; i++) {
        tmp = sub.substr(0, i + 1);
        if (tmp - 256 < 0) {
          // 转换下数据类型,如 01为1(LeetCode测试用例)
          search(cur.concat([tmp * 1]), sub.substr(i + 1));
        }
      }
    }
  };
  search([], s);
  return r;
}

console.log(restoreIpAddresses("101023"));

评论区

Beaudar Twikoo

最新评论

Loading...