LeetCode-复原 IP 地址(C++)

      最后更新:2022-06-27 16:48:08 手机定位技术交流文章

      93.恢复IP地址

      有效的IP地址由四个整数组成(每个整数在0到255之间,不能包含前者0 ) 并使用'between the integers.Separate。

      例如,“和”是有效的IP地址,但"","2"和"192@1".1"是一个无效的IP地址。
      给出只包含数字的字符串s,为指定IP地址,返回所有可能有效的IP地址,这些地址可以在s.to表格中插入。不能重新排序或删除s中的任何数目。你可以按任何顺序返回答案。

      示例 1:
      输入: s = "2552551135"
      输出:["","]

      这个问题类似于将逆字符串分割,并使用逆算法来分割字符串。

      首先, 将全球变量结果定义为结果集合.

      回溯算法三部曲:

      1. 确定返回函数参数和返回值: 参数是字符串, recursive index startIndex的起始位置和添加点的数点Num, 返回类型无效.
      2. 确定终止条件:在增加三个点时,说明字符串已经分成四个段落,然后判断字符串的最后一个段落是否符合条件(前三个段落被判断为循环,条件只能在第四段达到),如果符合条件,将s添加到结果集合中,然后返回。
      3. 确定单层后trace逻辑:为循环横渡所有字符,定义启动位置 startIndex,确定子字符串[startIndex,i]是否符合条件,如果匹配,在i之后插入一个点,然后点Num++。递归往深处遍历,递归的起始位置是i+2,因为一个点在i之后插入,要跳过这个点。然后回溯,pointNum–,删除在i之后插入的点。

      如果字符串大于1,第一个字符串是0;如果字符串大于255,则有效的ip地址返回 true。

      代码:

      参考文献:代码自定义录音

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/28626.html

          热门文章

          文章分类