C++ Solution
\nclass Solution {\npublic:\n    int len;\n    vector<string>ans;\n    string helper(string s,int k){\n        if(s.size() == 1) return s;\n        if(k>=2){\n 
```\nclass Solution {\npublic:\n    int len;\n    vector<string>ans;\n    string helper(string s,int k){\n        if(s.size() == 1) return s;\n        if(k>=2){\n            if(s[0] == \'0\') return "-1";\n        }\n        if(s[s.size()-1] == \'0\'){\n            if(k != s.size()) return "-1";\n        }\n        if(k == s.size()) return s;\n        string res = s.substr(0,k)+"."+s.substr(k);\n        return res;\n    }\n    void backtrack(string s,int pos,string prev){\n        if(prev.size()>0){\n            for(int i = 1;i<=len-pos;i++){\n                string t = helper(s.substr(pos),i);\n                if(t == "-1") continue;\n                else ans.push_back("("+prev+", "+t+")");\n            }\n            return;\n        }\n        else{\n            for(int i = 1;i<len;i++){\n                string temp = s.substr(0,i);\n                for(int j = 1;j<=i;j++){\n                    string t = helper(temp,j);\n                    if(t == "-1") continue;\n                    backtrack(s,i,t);\n                }\n            }\n        }\n    }\n    vector<string> ambiguousCoordinates(string s) {\n        s = s.substr(1,s.size()-2);\n        len = s.size();\n        backtrack(s,0,"");\n        return ans;\n    }\n};\n```
[]