房地产 网站 案例,万年县建设银行网站拼音全称,湖北十堰了不得科技网络公司,计算机学院网站建设93. 复原 IP 地址
确定函数is_ip的实现细节#xff0c;start不能超过end#xff0c;没有0开头的非0数字#xff0c;每个字符都在0-9之间,每段字符小于255在原字符串s上做操作会更简单一些
class Solution {
public:vectorstring result;vectorstring rest…93. 复原 IP 地址
确定函数is_ip的实现细节start不能超过end没有0开头的非0数字每个字符都在0-9之间,每段字符小于255在原字符串s上做操作会更简单一些
class Solution {
public:vectorstring result;vectorstring restoreIpAddresses(string s) {if (s.size() 4 || s.size() 12) {return result;}backtrinking(s, 0, 0);return result;}void backtrinking(string s, int start_index, int point_num) {if (point_num 3) {if (is_ip(s, start_index, s.size() - 1)) {result.push_back(s);}return;}for (int i start_index; i s.size(); i) {if (is_ip(s, start_index, i)) {s.insert(s.begin() i 1, .);point_num;backtrinking(s, i 2, point_num);s.erase(s.begin() i 1);point_num--;}}}bool is_ip(string s, int start, int end) {if (start end) {return false;}if (s[start] 0 start ! end) {return false;}if (end - start 3) {return false;}int sum 0;for (int i start; i end; i) {if (s[i] 0 || s[i] 9) {return false;}sum sum * 10 (s[i] - 0);if (sum 255) {return false;}}return true;}
};78. 子集
组合是手机所有叶子节点而子集是收集树的所有节点
class Solution {
public:vectorint path;vectorvectorint result;vectorvectorint subsets(vectorint nums) {backtriking(nums, 0);return result;}void backtriking(vectorint nums, int start_index) {result.push_back(path);if (start_index nums.size()) {return;}for (int i start_index; i nums.size(); i) {path.push_back(nums[i]);backtriking(nums, i 1);path.pop_back();}}
};90. 子集 II
used数组
class Solution {
public:vectorint path;vectorvectorint result;vectorvectorint subsetsWithDup(vectorint nums) {vectorint used(nums.size(), 0);sort(nums.begin(), nums.end());backtracking(nums, 0, used);return result;}void backtracking(vectorint nums, int start_index, vectorint used) {result.push_back(path);if (start_index nums.size()) {return;}for (int i start_index; i nums.size(); i) {if (i 0 nums[i] nums[i - 1] used[i - 1] 0) {continue;}path.push_back(nums[i]);used[i] 1;backtracking(nums, i 1, used);path.pop_back();used[i] 0;}}
};