頭條2019筆試題3:leetcode93 恢復ip
阿新 • • 發佈:2018-12-09
上報IP時,忽律了’.’,現在要還原所有原始IP的數量 輸入是一個字串,輸出一行一個整數。 leetcode93 給定一個只包含數字的字串,復原它並返回所有可能的 IP 地址格式。
示例:
輸入: “25525511135” 輸出: [“255.255.11.135”, “255.255.111.35”]
輸入
8888
輸出
1
思路: 每次dfs的時候都去檢查一下所有的字串的長度是不是能滿足在最多4個3位數字組成 程式碼:
class Solution(object):
def restoreIpAddresses(self, s):
"""
:type s: str
:rtype: List[str]
"""
res = []
self.dfs(s, [], res)
return res
def dfs(self, s, path, res):
if len(s) > (4 - len(path)) * 3:
return
if not s and len(path) == 4:
res.append('.'.join(path))
return
for i in range(min(3, len(s))):
curr = s[:i+1 ]
if (curr[0] == '0' and len(curr) >= 2) or int(curr) > 255:
continue
self.dfs(s[i+1:], path + [s[:i+1]], res)