Skip to content
LC-0816 Medium LeetCode

816. Ambiguous Coordinates

Read the full problem statement on LeetCode.
Difficulty: medium Acceptance: 56% Topics: String, Backtracking, Enumeration
View full problem on LeetCode
Reference solution (spoiler · python)
# Time:  O(n^4)
# Space: O(n)

import itertools


class Solution(object):
    def ambiguousCoordinates(self, S):
        """
        :type S: str
        :rtype: List[str]
        """
        def make(S, i, n):
            for d in xrange(1, n+1):
                left = S[i:i+d]
                right = S[i+d:i+n]
                if ((not left.startswith('0') or left == '0')
                        and (not right.endswith('0'))):
                    yield "".join([left, '.' if right else '', right])

        return ["({}, {})".format(*cand)
                for i in xrange(1, len(S)-2)
                for cand in itertools.product(make(S, 1, i),
                                              make(S, i+1, len(S)-2-i))]

Solution from kamyu104/LeetCode-Solutions · MIT