1. 程式人生 > >頭條2019筆試題3:leetcode93 恢復ip

頭條2019筆試題3:leetcode93 恢復ip

上報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)