LeetCode 93. 复原IP地址
给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。
有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。
示例:
输入: "25525511135"
输出: ["255.255.11.135", "255.255.111.35"]
典型回溯,看代码
class Solution:
def restoreIpAddresses(self, s: str) -> List[str]:
def backtrace(s, i, temp, flag):
if i == len(s) and flag == 0:
res.append(temp[:-1])
return
if flag < 0:
return
for j in range(i, i + 3):
if j < len(s):
if i == j and s[j] == '0': # 第一个为0
backtrace(s, j + 1, temp + s[j] + '.', flag - 1)
return
if 0 < int(s[i:j + 1]) <= 255:
backtrace(s, j + 1, temp + s[i:j + 1] + '.', flag - 1)
res = []
backtrace(s, 0, '', 4)
return res