-
Notifications
You must be signed in to change notification settings - Fork 119
/
Copy pathAmbiguous Coordinates.cpp
49 lines (44 loc) · 1.28 KB
/
Ambiguous Coordinates.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
class Solution {
public:
vector<string> check(string s){
int n = s.size();
vector<string> res;
if(s[0] == '0'){
if(n == 1)
res.push_back(s);
else{
if(s[n-1] == '0')
return res;
s.insert(1, ".");
res.push_back(s);
}
}
else{
if(s[n-1] == '0'){
res.push_back(s);
return res;
}
for(int i=1; i<n; i++){
string t = s.substr(0, i) + "." + s.substr(i, n-i);
res.push_back(t);
}
res.push_back(s);
}
return res;
}
vector<string> ambiguousCoordinates(string s) {
int n = s.size();
vector<string> res;
for(int i=2; i<n-1; i++){
vector<string> left = check(s.substr(1, i-1));
vector<string> right = check(s.substr(i, n-i-1));
for(int j=0; j<left.size(); j++){
for(int k=0; k<right.size(); k++){
string t = "(" + left[j] + ", " + right[k] + ")";
res.push_back(t);
}
}
}
return res;
}
};