Ambiguous Coordinates LeetCode solution in C++

1
class Solution {
2
public:
3
vector<string> check(string s) {
4
int n = s.size();
5
vector<string> res;
6
if (s[0] == '0') {
7
if (n == 1)
8
res.push_back(s);
9
else {
10
if (s[n - 1] == '0') return res;
11

12
s.insert(1, ".");
13
res.push_back(s);
14
}
15
} else {
16
if (s[n - 1] == '0') {
17
res.push_back(s);
18
return res;
19
}
20

21
for (int i = 1; i < n; i++) {
22
string t = s.substr(0, i) + "." + s.substr(i, n - i);
23
res.push_back(t);
24
}
25
res.push_back(s);
26
}
27

28
return res;
29
}
30
vector<string> ambiguousCoordinates(string s) {
31
int n = s.size();
32
vector<string> res;
33

34
for (int i = 2; i < n - 1; i++) {
35
vector<string> left = check(s.substr(1, i - 1));
36
vector<string> right = check(s.substr(i, n - i - 1));
37
for (int j = 0; j < left.size(); j++) {
38
for (int k = 0; k < right.size(); k++) {
39
string t = "(" + left[j] + ", " + right[k] + ")";
40
res.push_back(t);
41
}
42
}
43
}
44

45
return res;
46
}
47
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0