纯模拟,最笨的方法。没有一点算法
class Solution {
public:
vector<string> ambiguousCoordinates(string s) {
vector<string> res;
for(int i = 1; i < s.size() - 2; i++)
{
// 分成两部分
string a(s, 1, i);
string b(s, 1 + i, s.size() - i - 2);
for(int j = 1; j <= a.size(); j++)
{
// 每一部分进一步分为两部分
string a1(a, 0, j);
string a2(a, j, a.size() - j);
// 条件判断
if(a1.size() > 1 && a1[0] == '0')
break;
if(a2.size() > 0 && a2[a2.size() - 1] == '0')
continue;
for(int k = 1; k <= b.size(); k++)
{
// 每一部分进一步分为两部分
string b1(b, 0, k);
string b2(b, k, b.size() - k);
// 条件判断
if(b1.size() > 1 && b1[0] == '0')
break;
if(b2.size() > 0 && b2[b2.size() - 1] == '0')
continue;
// 合成结果
string t1;
string t2;
if(a2.size() == 0)
t1 = a1;
else
t1 = a1 + '.' + a2;
if(b2.size() == 0)
t2 = b1;
else
t2 = b1 + '.' + b2;
res.push_back('(' + t1 + ", " + t2 + ')');
}
}
}
return res;
}
};