← Backtracking

Micro-Drill #192 — Restore IP addresses

Backtracking Target: 15s

Place 3 dots in the string to create 4 parts. Each part: 1-3 digits, no leading zeros, value 0-255.

def restoreIpAddresses(s):
    res = []
    def backtrack(start, parts):
        if len(parts) == 4:
            if start == len(s):
                res.append('.'.join(parts))
            return
        for length in range(1, 4):
            if start + length > len(s): break
            seg = s[start:start+length]
            if (seg[0] == '0' and len(seg) > 1) or int(seg) > 255:
                continue
            backtrack(start + length, parts + [seg])
    backtrack(0, [])
    return res

Type it from memory. Go.

Practice Problems

Related Coding Drills

← Micro #191 Micro #193 →