Skip to the content.

leetcode [93] 复原IP地址


Contact me:

Blog -> https://cugtyt.github.io/blog/index
Email -> cugtyt@qq.com
GitHub -> Cugtyt@GitHub


给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式。

有效的 IP 地址正好由四个整数(每个整数位于 0 到 255 之间组成),整数之间用 ‘.’ 分隔。

示例:

输入: "25525511135"
输出: ["255.255.11.135", "255.255.111.35"]

思路:dfs,注意,分割时要判断00,000等情况,方法为转数字转字符串和当前值是否相同。

class Solution:
    def restoreIpAddresses(self, s: str) -> List[str]:
        ans = []
        def dfs(s, part, prev):
            if part == 0:
                if s == '': 
                    ans.append(prev[:-1])
                return
            for i in range(1, min(len(s) + 1, 4)):
                if 0 <= int(s[:i]) <= 255 and str(int(s[:i])) == s[:i]:
                    dfs(s[i:], part - 1, prev + s[:i] + '.')
        dfs(s, 4, '') 

        return ans