C++
\nclass Solution {\nprivate:\n    vector<string>splits(string s){\n        if(s.size() == 0)\n            return {} ;\n        if(s.size() > 1 && s[0] == \'0\' 
```\nclass Solution {\nprivate:\n    vector<string>splits(string s){\n        if(s.size() == 0)\n            return {} ;\n        if(s.size() > 1 && s[0] == \'0\' && s.back() == \'0\')\n            return {} ;\n        if(s.back() == \'0\')\n            return {s} ;\n        if(s.front() == \'0\')\n            return {"0." + s.substr(1)} ;\n        \n        vector<string>ret ;\n        ret.push_back(s) ;\n        for(int i = 1; i < s.size(); i++){\n            ret.push_back(s.substr(0, i) + "." + s.substr(i)) ;\n        }\n        return ret ;\n    }\npublic:\n    vector<string> ambiguousCoordinates(string s) {\n        vector<string>ret ;\n        s = s.substr(1, s.size()-2) ;\n        for(int i = 1; i < s.size(); i++){\n            for(auto& x : splits(s.substr(0, i))){\n                for(auto& y : splits(s.substr(i))){\n                    ret.push_back("(" + x + ", " + y +")" ) ;\n                }\n            }\n        }\n        return ret ;\n    }\n};\n```
[]