93. 复原 IP 地址(LeetCode)(dfs)
class Solution {
public:
vector<string> res;
vector<string> restoreIpAddresses(string s) {
dfs(s, 0, 0, "");
return res;
}
//u第几位开始搜,k已经搜索了几个数
void dfs(string &s, int u, int k, string path){
if(u == s.size()){
//将.去掉
path.pop_back();
if(k == 4) res.push_back(path);
return;
}
if(k == 4) return;
for(int i = u, t = 0; i < s.size(); ++i){
if(i > u && s[u] == '0') break;
t = t * 10 + s[i]-'0';
if(t <= 255) dfs(s, i + 1, k + 1, path + to_string(t) + '.');
else break;
}
}
};

浙公网安备 33010602011771号