- 分析
函数gao生成每个字符串s可以生成的符合条件的数字集合,在主函数中拼装。
- 代码
class Solution {
public:
vector<string> gao(string s) {
vector<string> pos;
if (s[0] != '0' || s == "0") pos.push_back(s);
for (int p = 1; p < s.size(); ++p) {
if ((p != 1 && s[0] == '0') || s.back() == '0') continue;
pos.push_back(s.substr(0, p) + "." + s.substr(p));
}
return pos;
}
vector<string> ambiguousCoordinates(string s) {
vector<string> ans;
int n = s.size() - 2;
s = s.substr(1, s.size() - 2);
for (int l = 1; l < n; ++l) {
vector<string> lt = gao(s.substr(0, l));
if (lt.empty()) continue;
vector<string> rt = gao(s.substr(l, n - l));
if (rt.empty()) continue;
for (auto& i : lt) {
for (auto& j : rt) {
ans.push_back("(" + i + ", " + j + ")");
}
}
}
return ans;
}
};