给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。
示例:
输入: “25525511135”
输出: [“255.255.11.135”, “255.255.111.35”]
暴力
今天这题虽然是中等难度,但是想要做出来并不是很困难,直接暴力枚举三个点就好了,然后判断一些特殊情况。
Code
def restoreIpAddresses(self, s: str) -> List[str]:
ans = []
if len(s) > 12:
return ans
for i in range(1, len(s)):
for j in range(i + 1, len(s)):
for k in range(j + 1, len(s)):
nums = [s[:i], s[i:j], s[j:k], s[k:]]
for item in nums:
if not item or (len(item) > 1 and item[0] == '0') or not (0 <= int(item) <= 255):
break
else:
ans.append('.'.join(nums))
return ans