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

类似于wordpress的关键词优化怎么操作

类似于wordpress的,关键词优化怎么操作,淘宝图片做链接的网站,域名查询最新版今天是第24天刷leetcode,立个flag,打卡60天。 算法挑战链接 93. 复原 IP 地址https://leetcode.cn/problems/restore-ip-addresses/ 第一想法 题目理解:将一串数字字符串变成正确的ip格式的字符串。 这类题目是切分字符串,ip一…

今天是第24天刷leetcode,立个flag,打卡60天。

算法挑战链接

93. 复原 IP 地址icon-default.png?t=N6B9https://leetcode.cn/problems/restore-ip-addresses/

第一想法

题目理解:将一串数字字符串变成正确的ip格式的字符串。

这类题目是切分字符串,ip一共有四组,所以是切分三次。

切分字符串的方法第一想到的就是回溯算法。那么使用回溯算法我们也可以和递归那样分三步走

第一步:确定入参和返回值

void backtracking3(String s, List<String> 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 List<String> restoreIpAddresses(String s) {List<String> result = new ArrayList<>();if (s.length() > 12) return result;backtracking3(s, result);return result;}void backtracking3(String s, List<String> 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();}
}

实现过程中遇到哪些困难 

实现过程中遇到的困难有

  1. 错误判断 0开头的也算符合,如032
  2. 错误判断 0不符合Ip规则,如 0.0.0.0
  3. 在进行字符串转换数字的时候,没有考虑到较大的数,使用了Integer.parseInt方法,报错了。
  4. 没有对字符串做过滤,导致 long.parseLong方法报错, 如999999999999999999

今日收获

       做题的时候应该需要看一下是否需要前置性做校验。

http://www.yidumall.com/news/48559.html

相关文章:

  • 青海做网站多少钱国际新闻界官网
  • 宠物发布网站模板sem是什么
  • 建设部网站危房鉴定标准规定广点通官网
  • 主机托管网站天天seo伪原创工具
  • dedecms做多语言的网站seo网站编辑是做什么的
  • 求职网站网页设计seo优化实训报告
  • 做招牌的网站深圳关键词优化平台
  • 官方网站作用优秀企业网站模板
  • 如何做百度推广的网站青岛的seo服务公司
  • 龙岗做网站多少钱搜关键词网站
  • 用台电脑做网站查看别人网站的访问量
  • 网站后台查找软件百度知道答题赚钱
  • 花生壳做网站是否稳定网页百度网盘
  • wordpress 子站点站长素材音效下载
  • 网站建设优化服务策划新手seo入门教程
  • 淘宝客做网站怎么操作seo软文推广工具
  • 交通建设集团蓝商分公司网站网站交易平台
  • 做外贸建网站做网站的好处
  • 西乡做网站多少钱注册网站平台
  • 郑州企业做网站app有哪些推广方式
  • 深圳建站公司收费推广seo优化公司
  • 高端网站设计公司排行榜福建百度推广开户
  • 如何为公司做网站网站推广服务
  • 上海专业做网站价格百度关键字排名软件
  • wordpress关闭GZIP简述seo和sem的区别与联系
  • 做民宿加盟哪些网站比较好成人再就业技能培训班
  • asp.net mvc5网站开发之美淘宝seo优化是什么
  • wordpress站群管理系统网络营销的发展概述
  • 健身网站开发项目总结成都网站建设制作公司
  • 公司建站方案厦门专业做优化的公司