C++ Solution || 95% faster
\nclass Solution {\npublic:\n    vector<string> ambiguousCoordinates(string s) {\n        int n = s.size();\n        vector<string>ans;\n        for(int i = 1; 
```\nclass Solution {\npublic:\n    vector<string> ambiguousCoordinates(string s) {\n        int n = s.size();\n        vector<string>ans;\n        for(int i = 1; i < n-2; i++){\n            vector<string>A = helper(s.substr(1, i));\n            vector<string>B = helper(s.substr(i+1, n-2-i));\n            for(auto &a : A)\n                for(auto &b : B)\n                    ans.push_back("(" + a + ", " + b + ")");\n        }\n        return ans;\n    }\n    vector<string>helper(string s){\n        int n = s.size();\n        if(n == 0 || (n > 1 && s[0] == \'0\' && s[n-1] == \'0\')) return {};  //Null string or 0xxx0         \n        if(n > 1 && s[0] == \'0\') return {"0." + s.substr(1)};   //0xxx9\n        if(n == 1 || s[n-1] == \'0\') return {s};   //single digit or 9xxx0\n        \n        //9xxx9\n        vector<string>ans = {s};\n        for(int i = 1; i < n; i++)\n            ans.push_back(s.substr(0,i) + \'.\' + s.substr(i));\n        return ans; \n    }\n};\n```
['C', 'C++']