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

网站托管运营所需资料在电脑上怎么创建微网站吗

网站托管运营所需资料,在电脑上怎么创建微网站吗,最专业微网站建设公司,交友wordpress给定字符串 s 和 t #xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些#xff08;也可以不删除#xff09;字符而不改变剩余字符相对位置形成的新字符串。#xff08;例如#xff0c;ace是abcde的一个子序列#x…给定字符串 s 和 t 判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些也可以不删除字符而不改变剩余字符相对位置形成的新字符串。例如ace是abcde的一个子序列而aec不是。 进阶 如果有大量输入的 S称作 S1, S2, ... , Sk 其中 k 10亿你需要依次检查它们是否为 T 的子序列。在这种情况下你会怎样改变代码 方法一双指针法 双指针法是一种直观且高效的方法通过分别使用两个指针遍历字符串 s 和 t比较对应字符若匹配则移动 s 的指针无论是否匹配都移动 t 的指针最后判断 s 的指针是否到达末尾。 function isSubsequence(s: string, t: string): boolean {let i 0;let j 0;while (i s.length j t.length) {if (s[i] t[j]) {i;}j;}return i s.length; }复杂度分析 时间复杂度(O(n))其中 n 是字符串 t 的长度。因为只需要遍历一次字符串 t。空间复杂度(O(1))只使用了常数级的额外空间用于存储两个指针。 方法二递归法 递归法通过不断缩小问题规模比较当前字符是否相等若相等则递归判断剩余部分若不相等则只递归处理 t 的剩余部分直到 s 为空或者 t 为空。 function isSubsequence(s: string, t: string): boolean {if (s.length 0) {return true;}if (t.length 0) {return false;}if (s[0] t[0]) {return isSubsequence(s.slice(1), t.slice(1));}return isSubsequence(s, t.slice(1)); }复杂度分析 时间复杂度(O(n))其中 n 是字符串 t 的长度。在最坏情况下每次递归调用都会处理 t 的一个字符。空间复杂度(O(n))主要是递归调用栈的空间开销递归深度最大为 t 的长度。 方法三动态规划法 动态规划法通过构建一个二维数组 dp 来记录子问题的解dp[i][j] 表示 s 的前 i 个字符是否是 t 的前 j 个字符的子序列根据字符是否相等进行状态转移。 function isSubsequence(s: string, t: string): boolean {const m s.length;const n t.length;const dp: boolean[][] new Array(m 1).fill(0).map(() new Array(n 1).fill(false));for (let j 0; j n; j) {dp[0][j] true;}for (let i 1; i m; i) {for (let j 1; j n; j) {if (s[i - 1] t[j - 1]) {dp[i][j] dp[i - 1][j - 1];} else {dp[i][j] dp[i][j - 1];}}}return dp[m][n]; }复杂度分析 时间复杂度(O(m * n))其中 m 是字符串 s 的长度n 是字符串 t 的长度。需要填充一个 (m1) 行 (n1) 列的二维数组。空间复杂度(O(m * n))主要用于存储二维数组 dp。 进阶问题思路 当有大量输入的 S如 S1, S2, ... , Sk 其中 (k 10) 亿需要依次检查它们是否为 T 的子序列时双指针法的时间复杂度会很高因为每次都要重新遍历 T。可以使用预处理 T 的方法记录每个字符在 T 中出现的所有位置然后对于每个输入的 S使用二分查找来快速定位字符在 T 中的位置这样可以将每次判断的时间复杂度降低到 (O(m * log n))其中 m 是 S 的长度n 是 T 的长度。以下是实现代码 function preprocess(t: string): number[][] {const pos: number[][] new Array(26).fill(0).map(() []);for (let i 0; i t.length; i) {const index t.charCodeAt(i) - a.charCodeAt(0);pos[index].push(i);}return pos; }function isSubsequenceAdvanced(s: string, t: string, pos: number[][]): boolean {let prev -1;for (let i 0; i s.length; i) {const index s.charCodeAt(i) - a.charCodeAt(0);const charPos pos[index];let left 0;let right charPos.length - 1;let found false;while (left right) {const mid Math.floor((left right) / 2);if (charPos[mid] prev) {right mid - 1;prev charPos[mid];found true;} else {left mid 1;}}if (!found) {return false;}}return true; }// 示例使用 const t abcde; const pos preprocess(t); const s ace; console.log(isSubsequenceAdvanced(s, t, pos));这种方法通过预处理 T 减少了重复计算提高了处理大量输入时的效率。
http://www.w-s-a.com/news/780647/

相关文章:

  • 北京php网站建设软通动力外包值得去吗
  • 优酷 做视频网站还能成功吗光谷做网站推广哪家好
  • 培训学校网站建设方案网站开发方案设计
  • 网站开发分支结构外贸网站做推广
  • 海南省城乡建设厅网站首页济南网站建设百家号
  • wordpress 图片命名吗北京seo优化哪家公司好
  • 国税网站页面申报撤销怎么做网站空间如何买
  • 简单的购物网站模板跨境建站平台
  • 网站主机多大html网站地图生成
  • 可信赖的邵阳网站建设德清做网站
  • 上传文件网站根目录wordpress博客管理
  • 网站seo优缺点网站建设公司咨
  • 网站设计需要会什么建设网站的目的以及意义
  • 怎么样推广自己的网站wordpress register_form
  • 网站公司建站凤翔网站建设
  • 网站建设协低价格的网站建设公司
  • 研发网站建设报价深圳网站建设前十名
  • 宠物发布网站模板wordpress中文免费电商模板
  • 济南做网站创意服装品牌策划公司
  • 本地电脑做视频网站 外网连接不上软件商城源码
  • 足球直播网站怎么做crm系统介绍
  • 株洲网站建设联系方式东莞凤岗网站制作
  • 小纯洁网站开发如何注册域名
  • 网上做试卷的网站如何把刚做的网站被百度抓取到
  • 滕州网站建wordpress用户中心按钮不弹出
  • 清远新闻最新消息福建seo搜索引擎优化
  • 凡客建站网微信网站怎么做的
  • 网站建设费怎么写会计科目行业网站建设公司
  • 网站里的友情链接网站建设个人简历的网页
  • 佛山自助建站软件湖南seo优化推荐