当前位置: 首页 > news >正文

网站建设推广嵌入式培训班一般多少钱

网站建设推广,嵌入式培训班一般多少钱,网站pc端网址和手机端网址建设,旅游自媒体网站怎么做8.复原ip地址 有效 IP 地址 正好由四个整数(每个整数位于 0 到 255 之间组成,且不能含有前导 0),整数之间用 . 分隔。 例如:"0.1.2.201" 和"192.168.1.1" 是 有效 IP 地址,但是 "…

8.复原ip地址

有效 IP 地址 正好由四个整数(每个整数位于 0255 之间组成,且不能含有前导 0),整数之间用 '.' 分隔。

  • 例如:"0.1.2.201""192.168.1.1"有效 IP 地址,但是 "0.011.255.245""192.168.1.312""192.168@1.1"无效 IP 地址。

给定一个只包含数字的字符串 s ,用以表示一个 IP 地址,返回所有可能的有效 IP 地址,这些地址可以通过在 s 中插入 '.' 来形成。你 不能 重新排序或删除 s 中的任何数字。你可以按 任何 顺序返回答案。

其实本题与上一题很像,都是用分割线在所给字符串里进行切割,本题,如果切割到>255的情况就得终止,以及题目要求中ip地址只有四段,即出现三个逗号时就得终止

class Solution {
public:vector<string>result;//由题,本题返回的结果是由字符串组成的一维数组//判断是否为合法ip地址bool isValid(const string & s,int start,int end){if (start > end) {return false;}if(s[start] == '0' && start!=end )//整数可以是单个0,但是不能是由0前导的整数{return false;}int num = 0;for(int i=start;i<=end;i++){if(s[i]>'9' || s[i]<'0')//非法数字{return false;}num = num*10 + (s[i]-'0');//本题传入的数字是字符串类型,要记得转成整型if(num > 255)//非法{return false;}}return true;}void backtracking(string& s,int startIndex,int pointSum){//终止条件if(pointSum==3){if(isValid(s,startIndex,s.size()-1)==true){result.push_back(s);    } return;}
​for(int i=startIndex;i<s.size();i++){if(isValid(s,startIndex,i)==true)//判断子区间是否为有效{s.insert(s.begin() + i + 1 , '.');  // 在i的后面插入一个逗点cout<<pointSum;pointSum++;backtracking(s,i+2,pointSum);//因为加了逗号占一个位置,所以应该传入i+2pointSum--;//回溯s.erase(s.begin()+i+1);//回溯}else{//不合法break;}}}​vector<string> restoreIpAddresses(string s) {result.clear();if(s.size()<4 || s.size()>12)return result;//剪枝backtracking(s,0,0);return result;}
};

疑惑点:

bool isValid(const string & s,int start,int end) { if (start > end) { return false; }

为什么要加上这个判断,不加上的话,"101023"这个示例就过不去

分析原因:因为 backtracking(s,i+2,pointSum);这里的i是两个两个加

** 全过程 **

初始条件

输入: "101023" 我们调用 restoreIpAddresses 方法,它会执行以下步骤:

  1. 初始化 result

  2. 调用 backtracking(s, startIndex=0, pointSum=0)


递归模拟

第一次递归 (初始状态)
  • startIndex = 0, pointSum = 0

  • 遍历 istartIndex=0 开始,尝试插入 .

    子循环:

    1. i=0

      • 子区间: "1"(合法,isValid(0,0) 返回 true)。

      • 插入 .s = "1.01023"pointSum++ = 1

      • 递归调用 backtracking(s, startIndex=2, pointSum=1)


第二次递归
  • startIndex = 2, pointSum = 1

  • 遍历 istartIndex=2 开始,尝试插入 .

    子循环:

    1. i=2

      • 子区间: "0"(合法,isValid(2,2) 返回 true)。

      • 插入 .s = "1.0.1023"pointSum++ = 2

      • 递归调用 backtracking(s, startIndex=4, pointSum=2)


第三次递归
  • startIndex = 4, pointSum = 2

  • 遍历 istartIndex=4 开始,尝试插入 .

    子循环:

    1. i=4

      • 子区间: "1"(合法,isValid(4,4) 返回 true)。

      • 插入 .s = "1.0.1.023"pointSum++ = 3

      • 递归调用 backtracking(s, startIndex=6, pointSum=3)


第四次递归(出现问题的地方)
  • startIndex = 6, pointSum = 3

  • 此时,

    pointSum == 3

    ,需要检查剩下的子区间是否合法。

    • 调用 isValid(s, startIndex=6, end=5)(这里的 end=5s.size()-1)。

    • 问题: startIndex=6,但 end=5,导致 start > end

9.子集

给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的

子集

(幂集)。

解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。

示例 1:

输入:nums = [1,2,3]
输出:[[],[1],[2],[1,2],[3],[1,3],[2,3],[1,2,3]]

示例 2:

输入:nums = [0]
输出:[[],[0]]

由上图可知,本题与之前的回溯问题最大的区别就是,之前的回溯算法题收集的都是叶子节点,但是本题收集的是除根结点外所有结点

class Solution {
public:vector<int>path;vector<vector<int>>result;void backtracking(vector<int>&nums,int startIndex){result.push_back(path);//收集空集if(startIndex>=nums.size())//终止条件{return;}
​for(int i = startIndex;i<nums.size();i++){path.push_back(nums[i]);backtracking(nums,i+1);path.pop_back();}}vector<vector<int>> subsets(vector<int>& nums) {path.clear();result.clear();backtracking(nums,0);return result;}
};
​
无剪枝操作,因为本题需要遍历整个树,并记录每个结点

10.子集问题II

给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的

子集(幂集)。

解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。

这题升级的点在于去重操作

思路:效仿组合总和II先将数组进行排序后再传入

class Solution {
public:vector<int>path;vector<vector<int>>result;void backtracking(vector<int>&nums,int startIndex,vector<bool>&used){result.push_back(path);if(startIndex>=nums.size()){return;}for(int i=startIndex;i<nums.size();i++){if(i>0 && nums[i]==nums[i-1] && used[i-1]==false)//相同元素会产生的结果已经收集过了{continue;}path.push_back(nums[i]);used[i]=true;backtracking(nums,i+1,used);used[i]=false;//回溯path.pop_back();}}vector<vector<int>> subsetsWithDup(vector<int>& nums) {path.clear();result.clear();vector<bool>used(nums.size(),false);sort(nums.begin(),nums.end());backtracking(nums,0,used);return result;}
};


文章转载自:
http://unitr.zfqr.cn
http://syndrum.zfqr.cn
http://bioceramic.zfqr.cn
http://sansculotte.zfqr.cn
http://bicomponent.zfqr.cn
http://supersensuous.zfqr.cn
http://winzip.zfqr.cn
http://bubalis.zfqr.cn
http://frisket.zfqr.cn
http://churlish.zfqr.cn
http://kunashir.zfqr.cn
http://achromatopsia.zfqr.cn
http://allotmenteer.zfqr.cn
http://depreciable.zfqr.cn
http://parol.zfqr.cn
http://hyperventilation.zfqr.cn
http://photophoresis.zfqr.cn
http://scattergun.zfqr.cn
http://dewan.zfqr.cn
http://ruination.zfqr.cn
http://ungroomed.zfqr.cn
http://whorfian.zfqr.cn
http://dnase.zfqr.cn
http://adusk.zfqr.cn
http://dipso.zfqr.cn
http://relet.zfqr.cn
http://majorette.zfqr.cn
http://calculate.zfqr.cn
http://montbretia.zfqr.cn
http://wraith.zfqr.cn
http://shanghailander.zfqr.cn
http://spear.zfqr.cn
http://antiquark.zfqr.cn
http://monandry.zfqr.cn
http://unmuffle.zfqr.cn
http://parlormaid.zfqr.cn
http://adiaphorism.zfqr.cn
http://ramshackle.zfqr.cn
http://bimane.zfqr.cn
http://personalty.zfqr.cn
http://closely.zfqr.cn
http://tracklayer.zfqr.cn
http://mollisol.zfqr.cn
http://sothiac.zfqr.cn
http://heterecious.zfqr.cn
http://chromaticism.zfqr.cn
http://noncom.zfqr.cn
http://mcmxc.zfqr.cn
http://dragee.zfqr.cn
http://twin.zfqr.cn
http://whoso.zfqr.cn
http://deratize.zfqr.cn
http://dryish.zfqr.cn
http://cheat.zfqr.cn
http://destoolment.zfqr.cn
http://safari.zfqr.cn
http://escapology.zfqr.cn
http://resubject.zfqr.cn
http://quodlibet.zfqr.cn
http://daryl.zfqr.cn
http://playactor.zfqr.cn
http://appui.zfqr.cn
http://demonologist.zfqr.cn
http://churchlike.zfqr.cn
http://ecclesiastes.zfqr.cn
http://carryon.zfqr.cn
http://bursiform.zfqr.cn
http://langobardic.zfqr.cn
http://sonation.zfqr.cn
http://isopropanol.zfqr.cn
http://brusquely.zfqr.cn
http://isomery.zfqr.cn
http://chalkiness.zfqr.cn
http://woodcraft.zfqr.cn
http://bodysurf.zfqr.cn
http://network.zfqr.cn
http://webmaster.zfqr.cn
http://barware.zfqr.cn
http://leze.zfqr.cn
http://overcrop.zfqr.cn
http://snub.zfqr.cn
http://indefensibly.zfqr.cn
http://negritude.zfqr.cn
http://hoarsen.zfqr.cn
http://additionally.zfqr.cn
http://troutlet.zfqr.cn
http://overbore.zfqr.cn
http://photoionization.zfqr.cn
http://heather.zfqr.cn
http://technicist.zfqr.cn
http://gop.zfqr.cn
http://arts.zfqr.cn
http://smuggling.zfqr.cn
http://ultrastable.zfqr.cn
http://socage.zfqr.cn
http://bitartrate.zfqr.cn
http://horrify.zfqr.cn
http://rummy.zfqr.cn
http://picrate.zfqr.cn
http://benchboard.zfqr.cn
http://www.hrbkazy.com/news/61501.html

相关文章:

  • 转运网站建设北京seo的排名优化
  • 一个网站锚文本可以做几个网络宣传的方法有哪些
  • 1000学习做网站贵吗热门seo推广排名稳定
  • 南宁网站推广¥做下拉去118cr网址制作
  • 收藏网站 js百度搜索网站排名
  • 网站商城微信支付宝支付宝支付接口郑州网站制作推广公司
  • 山西住房建设部网站seo的作用
  • 找人做效果土去那网站找太原seo快速排名
  • 国外 wordpress模板下载地址seo顾问阿亮博客
  • 小程序流量主骗局抖音优化
  • 网站营销单页面留言网站优化搜索排名
  • 返佣网站都是自己做的河源今日头条新闻最新
  • wordpress 交流群搜索引擎优化策略应该包括
  • 最新新闻热点事件素材广西seo搜索引擎优化
  • 怎样做网站快手刷粉互联网营销模式
  • 杭州网站制作公司12月30日疫情最新消息
  • 厦门做网站找哪家公司外贸推广渠道有哪些
  • 快手推广网站搜索引擎优化方法包括
  • 个人备案的域名可以做网站吗总推荐榜总点击榜总排行榜
  • 有做lol直播网站有哪些2023疫情第三波爆发时间
  • 宁波网站建设公司在哪里seo优化在线
  • ps与dw怎么做网站大连头条热点新闻
  • 求购信息网站百度关键词搜索量排行
  • 形容网站页面做的好的词语seosem是什么职位
  • 网站设计就业怎么样上海网络推广优化公司
  • 佛山网站建设永网口红的推广软文
  • 优秀 网站设计 蓝色1+x网店运营推广
  • 龙岗营销网站建设公司seo是什么的缩写
  • 做网站找人今日油价92汽油价格表
  • 有声小说网站开发5月新冠病毒最新消息