93. 复原 IP 地址🔖递归
https://leetcode-cn.com/problems/restore-ip-addresses/思路长度为12位:最小单元位3长度为11位:最小单元位2其他情况的最小单元位有可能是1ts代码function restoreIpAddresses(s: string): string...
2022年4月2日
183字
9 阅读
思路
- 长度为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'))
文章评论区
欢迎留言交流