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

驻马店 网站建设文书写作网站

驻马店 网站建设,文书写作网站,北京中小企业建站价格,柳州人社app下载今天是第24天刷leetcode#xff0c;立个flag#xff0c;打卡60天。 算法挑战链接 93. 复原 IP 地址https://leetcode.cn/problems/restore-ip-addresses/ 第一想法 题目理解#xff1a;将一串数字字符串变成正确的ip格式的字符串。 这类题目是切分字符串#xff0c;ip一…今天是第24天刷leetcode立个flag打卡60天。 算法挑战链接 93. 复原 IP 地址https://leetcode.cn/problems/restore-ip-addresses/ 第一想法 题目理解将一串数字字符串变成正确的ip格式的字符串。 这类题目是切分字符串ip一共有四组所以是切分三次。 切分字符串的方法第一想到的就是回溯算法。那么使用回溯算法我们也可以和递归那样分三步走 第一步确定入参和返回值 void backtracking3(String s, ListString result); 回溯算法的返回值一般都是void 入参不确定可以先做后面的使用的时候发现没有就可以确定为入参了 第二步确定终止条件 if (array.length 4) {//判断是否是一个正缺的ipif (isIp(array[3])) {result.add(s);}return;}很明显的终止条件字符串被切割成四份且每一份都在0-255范围内 第三步在当前的操作 String tmp array[array.length - 1];for (int i 0; i tmp.length() - 1; i) {String lastString tmp.substring(i 1);String preString tmp.substring(0, i 1);String newString combineString(array, preString, lastString);backtracking3(newString, result);} 找到最后一份不断的切分比如111 会根据1.11、11.1 这样来切分 在回溯算法中是可以考虑剪枝的。 for (int i 0; i array.length - 1; i) {if (! isIp(array[i])) return;} 如果前面的数字不符合ip的规范那么后面就没有必要在进行递归了 因此完成的代码如下 class Solution {public ListString restoreIpAddresses(String s) {ListString result new ArrayList();if (s.length() 12) return result;backtracking3(s, result);return result;}void backtracking3(String s, ListString result) {String[] array s.split(\\.);for (int i 0; i array.length - 1; i) {if (! isIp(array[i])) return;}if (array.length 4) {//判断是否是一个正缺的ipif (isIp(array[3])) {result.add(s);}return;}String tmp array[array.length - 1];for (int i 0; i tmp.length() - 1; i) {String lastString tmp.substring(i 1);String preString tmp.substring(0, i 1);String newString combineString(array, preString, lastString);backtracking3(newString, result);}}private static boolean isIp(String s) {if (s.startsWith(0) s.length() 1) return false;long currentNum Long.parseLong(s);return currentNum 0 currentNum 255;}private String combineString(String[] array, String preString, String lastString) {StringBuilder sb new StringBuilder();for (int i 0; i array.length - 1; i) {sb.append(array[i]).append(.);}sb.append(preString).append(.).append(lastString);return sb.toString();} } 实现过程中遇到哪些困难  实现过程中遇到的困难有 错误判断 0开头的也算符合如032错误判断 0不符合Ip规则如 0.0.0.0在进行字符串转换数字的时候没有考虑到较大的数使用了Integer.parseInt方法报错了。没有对字符串做过滤导致 long.parseLong方法报错 如999999999999999999 今日收获 做题的时候应该需要看一下是否需要前置性做校验。
http://www.hkea.cn/news/14429426/

相关文章:

  • 网上书店网站开发代码企业信息管理系统的发展历程
  • 西安哪家公司做的网站好app下载软件电脑版
  • 网站开发工程师证书教资注册网站
  • 新开传奇网站曾劲松seo企业推广案例
  • 有什么网站可以免费注册徐州社交网站
  • 企业网站优化服务主要围绕什么百度关键词价格排行榜
  • 哈尔滨做网站需要多少钱淘宝的网站怎么做的好
  • 同安区建设局网站招投标为什么wordpress升级
  • 上海市建设安全协会网站一360wordpress数据库设置
  • 制作网站教学设计flask做网站工具
  • 网站的建设方法包括什么wordpress目录分站
  • 建站之星服务器filetype ppt 网站建设
  • 网站外链快速建设页面设计设计风格
  • 如何下载网站模版网站建设优化需要懂那些知识
  • 茂港网站开发公司一个公司备案多个网站要注意
  • 官方网站建设合作协议wordpress 调用 页眉
  • 沈阳建设工程信息网官网新网站python做简单网站
  • asp 公司网站wordpress 环保主题公园
  • 松原建设小学网站怎样提高网站权重
  • 金融棋牌网站建设昆山有建设网站的吗
  • 江苏卓业建设网站专做logo网站叫什么
  • 惠东做网站公司xp花生壳做自己的网站
  • 陈木胜怎么走的网站为什么要seo
  • wordpress 前端 插件哈尔滨seo优化公司多少钱
  • 阿里云中英文网站建设青岛注册公司流程2023年
  • 柳州建设网站经济适用房表格广州网站建设圣矢
  • 网站维护一般多久建立一个网站的英文
  • 网站分哪几类办公家具网站建设公司
  • 怎样在国外网站上做宣传wordpress 绑定手机
  • 辽ICP备 网站建设 中企动力东莞网站快速排名