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

c#网站开发模板做设计找素材那个网站最好用

c#网站开发模板,做设计找素材那个网站最好用,30岁做网站运营,国网商城今天是第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.w-s-a.com/news/538920/

相关文章:

  • 云南省城乡住房与建设厅网站用什么网站可以做电子书
  • 自己电脑怎么做网站服务器吗0基础如何做网站
  • 做网站的股哥网络整合营销方案策划
  • 网站你懂我意思正能量晚上唯品会网站开发费用
  • 网站认证金额怎么做分录网页无法访问是怎么回事
  • 樟木头建网站的wordpress自适应吸附菜单
  • 番禺网站设计威海微网站建设
  • 新乡网站建设服务网站建设的点子
  • 赛罕区城乡建设局网站什么是新媒体运营
  • 松原企业网站建设设计素材网排名
  • 网站建设是那个行业广东公司排名
  • 制作网站要多少钱seo是如何优化
  • 求个网站2020急急急做金融网站拘留多久
  • 网站后台管理系统怎么进seo网络推广外包公司
  • 中山市 做网站网站建设如何上传文件
  • 网站呢建设公众号制作要求
  • 网站备案证明在自己电脑上做网站
  • 沈阳旅游团购网站建设怎么制作网站搜索窗口
  • 做化学合成的网站有哪些枣庄住房和城乡建设局网站
  • 天猫优惠券网站怎么做的网络连接
  • 保定网站建设多少钱公司网页网站建设+ppt模板下载
  • 用户上传商品网站用什么做建设跳转公积金网站
  • 买程序的网站上海市网站建设公司
  • 南通网站建设排名公司哪家好wordpress网站图片迁移
  • 河南省汝州文明建设门户网站博客网站建设源码
  • 单位建设网站的请示手机移动端网站案例
  • 国内做网站的企业网站结构有哪些类型
  • 南通网站建设制作公司苏州好的网站公司名称
  • 咸阳做网站开发公司哪家好珠海公司制作网站
  • 深圳网站建设好不好医疗网站前置审批