Explained Cpp code
IntuitionApproachComplexity
Time complexity:

Space complexity:
Code
# Intuition
<!-- Describe your first thoughts on how to solve this problem. -->

# Approach
<!-- Describe your approach to solving the problem. -->

# Complexity
- Time complexity:
<!-- Add your time complexity here, e.g. $$O(n)$$ -->

- Space complexity:
<!-- Add your space complexity here, e.g. $$O(n)$$ -->

# Code
```cpp []
class Solution {
public:
    vector<string> get_all_cords(string s){
        vector<string> result;

        //  ========== integer (no leading zeros) ============
        if (! (s.size() > 1 && s[0] == '0'))
            result.push_back(s);


        // ========= locate decimal point =========

        // zeros at the end of decimal point are not allowed
        if (s.back() == '0') return result;


        // if having a leading zero, allow only 0.XXX decimal point
        int max_left_len = (s[0] == '0') ? 1 : s.size()-1;
        for(int i = 1; i <= max_left_len; i++){
            result.push_back(s.substr(0,i) + "." + s.substr(i));
        }
        return result;
    }
    vector<string> ambiguousCoordinates(string s) {
        s = s.substr(1,s.size()-2); // remove parentheses

        vector<string> result;
        // loop over comma position
        for(int i=1; i <= s.size()-1; i++){
            auto cords_left = get_all_cords(s.substr(0,i));
            auto cords_right = get_all_cords(s.substr(i));
            for(auto& left : cords_left){
                for(auto& right : cords_right){
                    result.push_back("(" + left + ", " + right + ")");
                }
            }

        }
        return result;

    }
};
```
['C++']