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
|
class Solution { public: vector<string> ans; vector<string> restoreIpAddresses(string s) { string path; dfs(s, 0, 0, path); return ans; } void dfs(string &s, int u, int k, string path) { if (u == s.size()) { if (k == 4) { ans.push_back(path.substr(1)); } return ; } if (k > 4) return ; if (s[u] == '0') dfs(s, u + 1, k + 1, path + ".0"); else { for (int i = u, t = 0; i < s.size(); i ++ ) { t = t * 10 + s[i] - '0'; if ( t < 256) dfs(s, i + 1, k + 1, path + '.' + to_string(t)); else break; } } } };
|
近期评论