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

济南建设厅网站安全员做网站 用虚拟服务器iis

济南建设厅网站安全员,做网站 用虚拟服务器iis,网站制作方案和主要内容,摄影建设网站问题背景 给你一个字符串数组 w o r d s words words 和一个字符串 t a r g e t target target。 如果字符串 x x x 是 w o r d s words words 中 任意 字符串的 前缀#xff08;字符串的前缀是从字符串的开头开始并延伸到其中任意点的子串#xff09;#xff0c;则认为…问题背景 给你一个字符串数组 w o r d s words words 和一个字符串 t a r g e t target target。 如果字符串 x x x 是 w o r d s words words 中 任意 字符串的 前缀字符串的前缀是从字符串的开头开始并延伸到其中任意点的子串则认为 x x x 是一个 有效 字符串。 现计划通过 连接 有效字符串形成 t a r g e t target target请你计算并返回需要连接的 最少 字符串数量。如果无法通过这种方式形成 t a r g e t target target则返回 − 1 -1 −1。 数据约束 1 ≤ w o r d s . l e n g t h ≤ 100 1 \le words.length \le 100 1≤words.length≤100 1 ≤ w o r d s [ i ] . l e n g t h ≤ 5 × 1 0 3 1 \le words[i].length \le 5 \times 10 ^ 3 1≤words[i].length≤5×103 s u m ( w o r d s [ i ] . l e n g t h ) ≤ 1 0 5 sum(words[i].length) \le 10 ^ 5 sum(words[i].length)≤105 w o r d s [ i ] words[i] words[i] 只包含小写英文字母 1 ≤ t a r g e t . l e n g t h ≤ 5 × 1 0 3 1 \le target.length \le 5 \times 10 ^ 3 1≤target.length≤5×103 t a r g e t target target 只包含小写英文字母 解题过程 周赛第三题的水准数据范围允许暴力解似乎可以用前缀树搭配嵌套循环解决。遗憾的是我目前只会写前缀树还不会用前缀树来解决问题。 既然要学那就学习一下一般情形化的做法。这题可以看作将目标分割成几个部分每个部分都是给定的数组中字符串的前缀。 要求选用的字符串尽可能少就要每次覆盖的范围尽可能大这就可以参考 跳跃游戏 II 和 灌溉花园的最少水龙头数目。没有保证一定能实现目标要单独处理。 分割的部分需要用到 扩展 KMP 算法也叫字符串的 Z 函数它的作用是求出一个字符串中各个后缀与它本身的最长公共前缀的长度。这个东西今天是第一次见不要求马上能学会先见识一下。 还有使用字符串哈希和 AC 自动机的做法因为相应的算法还没有掌握先不作要求可以暂时把重点放在吃透造桥问题的贪心做法上。 具体实现 class Solution {public int minValidStrings(String[] words, String target) {int n target.length();int[] maxJumps new int[n];for(String word : words) {// 把目标拼到这个单词的后面就可以求出 Z 函数来辅助计算每个字符串可取的最大前缀了// 加一个特殊字符防止下标越界int[] z calcZ(word # target);int m word.length() 1; // 这里额外加的长度是用来修正特殊字符的// 求出目标每个位置上能够匹配到的最大前缀长度for(int i 0; i n; i ) {maxJumps[i] Math.max(maxJumps[i], z[m i]);}}return jump(maxJumps);}// Z 函数private int[] calcZ(String s) {char[] chS s.toCharArray();int n chS.length;int[] z new int[n];int left 0, right 0;for(int i 1; i n; i) {if(i right) {z[i] Math.min(z[i - left], right - i 1);}while(i z[i] n chS[z[i]] chS[i z[i]]) {left i;right i z[i];z[i];}}return z;}// 造桥问题的解参见 Leetcode 45.跳跃游戏 II 和 Leetcode 1326.灌溉花园的最少水龙头数目private int jump(int[] maxJumps) {int res 0;int curEnd 0;int nextEnd 0;for(int i 0; i maxJumps.length; i) {nextEnd Math.max(nextEnd, i maxJumps[i]);if(i curEnd) {if(i nextEnd) {return -1;}curEnd nextEnd;res;}}return res;} }
http://www.w-s-a.com/news/474180/

相关文章:

  • 企业网站改版的意义响应式网站建设新闻
  • 大连金州新区规划建设局网站金坛市建设局网站
  • 有哪些做排球比赛视频网站wordpress 教师工作坊
  • 深圳好点的网站建设公司互联网企业信息服务平台
  • 下载空间大的网站建设哈尔滨网站制作软件
  • 南城网站仿做无锡网站制作哪家价格便宜
  • c做的网站营销策划课程
  • 免费网站404免费进入重庆的公需科目在哪个网站做
  • 网站空间租用费用网站建设公司怎么宣传
  • 镇江网站建设优化案例分析dw2018网页制作步骤图文
  • 网站开发一个多少钱为什么前端都不用dw
  • 网站降权的原因北京中小企业网站建设公司
  • 个人域名能做网站吗wordpress
  • 手机网站设计只找亿企邦工业设计公司简介
  • 腾讯云主机做网站免费网站怎么做啊
  • 网站建设推广销售话术广州网页定制多少钱
  • 备案号是哪个网站项目管理pmp
  • 做网站需要哪些硬件软件网站视频链接怎么做的
  • 电子商务网站建设试题二wordpress主页显示浏览数
  • 网站快照没了广州企业电话大全
  • 网站项目开发收费标准网站开发app开发主营业务
  • 怎么到国外网站去接模具订单做互联网建设企业网站
  • 深圳品牌网站建设公司排名洪雅网站建设
  • nodejs 做网站wordpress主题绕过激活码
  • 平湖模板网站建设公司网页美工培训
  • 顺德网站建设市场建设工程交易中心网站
  • 深圳企业网站怎么做浪琴手表网站建设图
  • 2018网站外链怎么做济南 网站设计公司
  • 承德百度网站建设郑州网站seo优化公司
  • 四川建站模板网站公司分类信息网站制作