816. 模糊坐标(来判断一个数是否是一个合法数字)

发布时间 2023-11-03 17:22:09作者: 深渊之巅

 对于一个整数来说其为一个合法数字前提是没有前导0

对于一个小数可以分解一下其整数部分和小数部分,整数部分和上条一致,小数部分末尾不能为0

 

对于本题: 我们可以先枚举逗号的位置,在对于左右两边枚举小数点的位置然后将两边拼起来就行。

 

def findSplit(s: str) -> List[str]:
    ans = []
    if len(s) == 1 or s[0] != '0':
        ans.append(s)

    for i in range(1, len(s)):
        s1, s2 = s[:i], s[i:]
        if (i == 1 or s1[0] != '0') and s2[-1] != '0':
            ans.append(s1 + '.' + s2)
    return ans

class Solution:
    def ambiguousCoordinates(self, s: str) -> List[str]:
        n, res = len(s), []
        s = s[1: n - 1]

        for i in range(1, n - 2):
            part1, part2 = findSplit(s[:i]), findSplit(s[i:])
            for a in part1:
                for b in part2:
                    res.append('(' + a + ', ' + b + ')')

        return res