字符串转IP地址
给定一个只包含数字的字符串,用以表示一个 IP 地址,返回所有可能从 s 获得的 有效 IP 地址 。你可以按任何顺序返回答案。
有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。
例如:"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址,但是 "0.011.255.245"、"192.168.1.312" 和 "192.168@1.1" 是 无效 IP 地址。
class Solution:
def restoreIpAddresses(self, s: str) -> List[str]:
res, path = [], []
n = len(s)
def backstrack(begin, section):
if begin == n or section == 0:
if begin == n and section == 0:
res.append('.'.join(list(path)))
return
if s[begin] == '0':
path.append('0')
backstrack(begin + 1, section - 1)
path.pop()
return
for i in range(begin, len(s)):
tmp = s[begin: i + 1]
if int(tmp) <= 255:
path.append(tmp)
backstrack(i + 1, section - 1)
path.pop()
backstrack(0, 4)
return res
题解:分割问题