816 - The long answer
Not a simple one :)\n\nLong answer ahead :), with a lot of code duplication. Hopefully others can understand.\n\n    var ambiguousCoordinates = function (s) {\n
Not a simple one :)\n\nLong answer ahead :), with a lot of code duplication. Hopefully others can understand.\n\n    var ambiguousCoordinates = function (s) {\n        let n = s.length;\n\n        // answer array\n        let A = [];\n\n        // remove ( and ),   reduce length by 2\n        s = s.slice(1, n - 1);\n        n -= 2;\n\n        for (let i = 1; i < n; i++) {\n            let left = s.slice(0, i);\n            let right = s.slice(i);\n\n            // ---------- no decimals\n\n            if (\n                (left.length >= 2 && left.startsWith("0")) ||\n                (right.length >= 2 && right.startsWith("0"))\n            ) {\n            } else {\n                A.push("(" + left + ", " + right + ")");\n            }\n\n            // ---------- left decimal\n\n            for (let j = 1; j < left.length; j++) {\n                left1 = left.slice(0, j);\n                left2 = left.slice(j);\n                if (\n                    (left1.length >= 2 && left1.startsWith("0")) || //\n                    (left2.length >= 2 && left2.endsWith("0")) || //\n                    +left2 === 0 || //\n                    (right.length >= 2 && right.startsWith("0"))\n                ) {\n                } else {\n                    A.push("(" + left1 + "." + left2 + ", " + right + ")");\n                }\n            }\n\n            // ---------- right decimal\n\n            for (let j = 1; j < right.length; j++) {\n                right1 = right.slice(0, j);\n                right2 = right.slice(j);\n                if (\n                    (right1.length >= 2 && right1.startsWith("0")) || //\n                    (right2.length >= 2 && right2.endsWith("0")) || //\n                    +right2 === 0 || //\n                    (left.length >= 2 && left.startsWith("0"))\n                ) {\n                } else {\n                    A.push("(" + left + ", " + right1 + "." + right2 + ")");\n                }\n            }\n\n            // ---------- left & right decimal\n\n            for (let j = 1; j < left.length; j++) {\n                left1 = left.slice(0, j);\n                left2 = left.slice(j);\n                if (\n                    (left1.length >= 2 && left1.startsWith("0")) || //\n                    (left2.length >= 2 && left2.endsWith("0")) || //\n                    +left2 === 0\n                ) {\n                } else {\n                    for (let j = 1; j < right.length; j++) {\n                        right1 = right.slice(0, j);\n                        right2 = right.slice(j);\n\n                        if (\n                            (right1.length >= 2 && right1.startsWith("0")) || //\n                            (right2.length >= 2 && right2.endsWith("0")) || //\n                            +right2 === 0\n                        ) {\n                        } else {\n                            A.push("(" + left1 + "." + left2 + ", " + right1 + "." + right2 + ")");\n                        }\n                    }\n                }\n            }\n\n            // ---------- right & left decimal\n\n            for (let j = 1; j < right.length; j++) {\n                right1 = right.slice(0, j);\n                right2 = right.slice(j);\n                if (\n                    (right1.length >= 2 && right1.startsWith("0")) || //\n                    (right2.length >= 2 && right2.endsWith("0")) || //\n                    +right2 === 0\n                ) {\n                } else {\n                    for (let j = 1; j < left.length; j++) {\n                        left1 = left.slice(0, j);\n                        left2 = left.slice(j);\n                        if (\n                            (left1.length >= 2 && left1.startsWith("0")) || //\n                            (left2.length >= 2 && left2.endsWith("0")) || //\n                            +left2 === 0\n                        ) {\n                        } else {\n                            A.push("(" + left1 + "." + left2 + ", " + right1 + "." + right2 + ")");\n                        }\n                    }\n                }\n            }\n        }\n\n        return [...new Set(A)];\n    };\n\n----\n\nAfter merging loops into another ( `left` into `left & right`,  and   `right` into `right & left`)\n\n    var ambiguousCoordinates = function (s) {\n        let n = s.length;\n\n        // answer array\n        let A = [];\n\n        // remove ( and ),   reduce length by 2\n        s = s.slice(1, n - 1);\n        n -= 2;\n\n        for (let i = 1; i < n; i++) {\n            let left = s.slice(0, i);\n            let right = s.slice(i);\n\n            // ---------- no decimals\n            if (\n                (left.length >= 2 && left.startsWith("0")) ||\n                (right.length >= 2 && right.startsWith("0"))\n            ) {\n            } else {\n                A.push("(" + left + ", " + right + ")");\n            }\n\n            // left decimal, then  left & right decimal\n            for (let j = 1; j < left.length; j++) {\n                left1 = left.slice(0, j);\n                left2 = left.slice(j);\n                if (\n                    (left1.length >= 2 && left1.startsWith("0")) || //\n                    (left2.length >= 2 && left2.endsWith("0")) || //\n                    +left2 === 0\n                ) {\n                    continue;\n                }\n\n                // ---------- left decimal\n                if (right.length >= 2 && right.startsWith("0")) {\n                } else {\n                    A.push("(" + left1 + "." + left2 + ", " + right + ")");\n                }\n\n                // ---------- left & right decimal\n                for (let j = 1; j < right.length; j++) {\n                    right1 = right.slice(0, j);\n                    right2 = right.slice(j);\n                    if (\n                        (right1.length >= 2 && right1.startsWith("0")) || //\n                        (right2.length >= 2 && right2.endsWith("0")) || //\n                        +right2 === 0\n                    ) {\n                        continue;\n                    }\n\n                    A.push("(" + left1 + "." + left2 + ", " + right1 + "." + right2 + ")"); //prettier-ignore\n                }\n            }\n\n            // right decimal, then  right & left decimal\n            for (let j = 1; j < right.length; j++) {\n                right1 = right.slice(0, j);\n                right2 = right.slice(j);\n                if (\n                    (right1.length >= 2 && right1.startsWith("0")) || //\n                    (right2.length >= 2 && right2.endsWith("0")) || //\n                    +right2 === 0\n                ) {\n                    continue;\n                }\n\n                // ---------- right decimal\n                if (left.length >= 2 && left.startsWith("0")) {\n                } else {\n                    A.push("(" + left + ", " + right1 + "." + right2 + ")");\n                }\n\n                // ---------- right & left decimal\n                for (let j = 1; j < left.length; j++) {\n                    left1 = left.slice(0, j);\n                    left2 = left.slice(j);\n                    if (\n                        (left1.length >= 2 && left1.startsWith("0")) || //\n                        (left2.length >= 2 && left2.endsWith("0")) || //\n                        +left2 === 0\n                    ) {\n                        continue;\n                    }\n\n                    A.push("(" + left1 + "." + left2 + ", " + right1 + "." + right2 + ")"); //prettier-ignore\n                }\n            }\n        }\n\n        return [...new Set(A)];\n    };\n\n----\n
['JavaScript']