提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
代码随想录Day24
LeetCode93.复原IP地址
class Solution {
public:
vector<string> result;
vector<string> restoreIpAddresses(string s) {
dfs(s, 0, 0);
return result;
}
bool judge(string s){
for(int i = 0; i < s.length(); i++){
if(s[i] > '9' || s[i] < '0')return false;
}
if(s == "0")return true;
else if(s[0] > '0' && s[0] <= '9' && s.length() < 3)return true;
else if(s.length() == 3 && s[0] < '2' && s[0] > '0')return true;
else if(s.length() == 3 && s[0] == '2' && s[1] < '5' && s[1] >= '0')return true;
else if(s.length() == 3 && s[0] == '2' && s[1] == '5' && s[2] >= '0' && s[2] <= '5')return true;
return false;
}
void dfs(string s, int startindex, int times){
if(times == 3){
string sub_str = s.substr(startindex, s.length() - startindex);
if(judge(sub_str)){
result.push_back(s);
}
}
else{
for(int i = startindex + 1; i < s.length() && i <= startindex + 3; i++){
string sub_str = s.substr(startindex, i - startindex);
if(judge(sub_str)){
s.insert(i, ".");
dfs(s, i + 1, times + 1);
s.erase(i, 1);
}
}
}
}
};
LeetCode78.子集
class Solution {
public:
vector<int> temp;
vector<vector<int>> result;
vector<vector<int>> subsets(vector<int>& nums) {
result.push_back(temp);
dfs(nums, 0, temp);
return result;
}
void dfs(vector<int>& nums, int startIndex, vector<int>& path)
{
for(int i = startIndex; i < nums.size(); i++){
path.push_back(nums[i]);
result.push_back(path);
dfs(nums, i + 1, path);
path.pop_back();
}
}
};
LeetCode90.子集Ⅱ
class Solution {
public:
vector<int> path;
vector<vector<int>> result;
vector<vector<int>> subsetsWithDup(vector<int>& nums) {
std::sort(nums.begin(),nums.end());
vector<bool> used(nums.size(), false);
result.push_back(path);
dfs(nums, 0, path, used);
return result;
}
void dfs(vector<int>& nums, int startIndex, vector<int>& path, vector<bool>& used){
for(int i = startIndex; i < nums.size(); i++){
if(i > 0 && used[i - 1] == true && nums[i] == nums[i - 1]){
used[i - 1] = false;
used[i] = true;
continue;
}
path.push_back(nums[i]);
result.push_back(path);
used[i] = false;
dfs(nums, i + 1, path, used);
used[i] = true;
path.pop_back();
}
}
};
1029

被折叠的 条评论
为什么被折叠?



