Beats 100% users with rust
Intuition\n Describe your first thoughts on how to solve this problem. \n\n# Approach\n Describe your approach to solving the problem. \n\n# Complexity\n- Time 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\n\n# Complexity\n- Time complexity:\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\n\n\nimpl Solution {\n    pub fn ambiguous_coordinates(s: String) -> Vec<String> {\n        let mut result: Vec<String> = vec![];\n        let mut current: String = String::new();\n        Solution::backtrack(&s.chars().collect::<Vec<char>>()[1..s.len() -1].to_vec(), &mut current, false, false,false, &mut result);\n        result.into_iter().map(|s| format!("{}{}{}", "(", s, ")")).collect()\n    }\n\n    pub fn backtrack(items: &Vec<char>,current: &mut String, isCommaAdded: bool,isFirstDotAdded: bool,isSencondDotAdded: bool, result: &mut Vec<String>) {\n        if items.len() == 0 {\n             if current.contains(\',\') {\n             \n    \n             // check each coordinates for 00, 0.0, etc...   \n             let parts: Vec<&str> = current.split(\',\').collect();\n    \n            for part in parts {\n                let part = &part.replace(" ", "");\n              if part.starts_with("0") && part.len() > 1 && !part.starts_with("0.") || (part.contains(\'.\') && part.ends_with(\'0\')) {\n                return;\n              } \n              } \n               result.push(current.clone());\n             }\n        } else {\n            if isCommaAdded {\n               if isSencondDotAdded {\n                     current.push(items[0]); \n                     Solution::backtrack(&items[1..].to_vec(), current, true, true, true, result);\n                     current.pop();\n               } else {\n                 current.push(items[0]);\n                 if items.len() > 1 {\n                 current.push(\'.\');\n                 Solution::backtrack(&items[1..].to_vec(), current, true, true, true, result);\n                 current.pop();\n                 } \n                 Solution::backtrack(&items[1..].to_vec(), current, true, true, false, result);\n                 current.pop();\n               }\n            } else {\n                if isFirstDotAdded {\n                     current.push(items[0]); \n                      if items.len() > 1 {\n                     current.push(\',\');\n                     current.push(\' \');\n                     Solution::backtrack(&items[1..].to_vec(), current, true, true, false, result);\n                     current.pop();\n                     current.pop();\n                      }\n                     Solution::backtrack(&items[1..].to_vec(), current, false, true, false, result);\n                     current.pop();\n               } else {\n                  if items.len() > 1 {\n                 current.push(items[0]); \n                 current.push(\',\');\n                 current.push(\' \');\n                 Solution::backtrack(&items[1..].to_vec(), current, true, false, false, result);\n                 current.pop();\n                 current.pop();\n                 current.push(\'.\');\n                 Solution::backtrack(&items[1..].to_vec(), current, false, true, false, result);\n                 current.pop();\n                 Solution::backtrack(&items[1..].to_vec(), current, false, false, false, result);\n                 current.pop();\n                  }\n               }\n\n            }\n        }\n    }\n}\n```
['Backtracking', 'Rust']