举例: 查找两个字符串 相同的片段 很直观’15as’是相同片段; 先说一下结题思路,有很多种,我只说我想的思路; 就是将str1按它长度(最大到长度为1)的所有片段 去和str 对比(取包含的) 然后找出最长的 所以重点就是如何找str1 的所有片段 红线左边的是长度 右边是字符串的索引 为什么这么写 因为用到slice() 字符串截取 好首先把这个问题解决了 我们创建一个对象 数据格式是 key:字符串长度, 右边的用一个数组装起来 通过这个方法找到字符串 所有长度下的组合 也就是片段 我们现在只是获取了数组的索引 接下来就简单了 匹配就完事了 将 一开始我们举例的字符串带入 得到一个数组 如果希望的是最长的 那个 就拿到了最长的 公共片段 该方法一样可以解决两个数组 相同相邻的元素
var str = 'qwe15as45',str1 = 'ewzc15asd'
//将str1 字符串按长度 组合排列 //由于例子的str1有点长 我就重新定义一个str1 = '1234' //所以str1 长度为4的组合 1234 ,长度3:123,234两种 长度为2:12,23,34,三种 长度为1: 1,2,3,4四种
function getPublic(str,str1){ var arr = [];//用来装所有包含的字符串 len = str.length while(len!=0){ for (var i = 0;i<str.length;i++){ if(i+len-1 <str.length){ var t=str.slice(i,i+len) if(str1.includes(t)){ arr.push(t) } } } len -- } return new Set(arr)//这里要去重 }
function getPublic(str,str1){ var arr = [] len = str.length while(len!=0){ for (var i = 0;i<str.length;i++){ if(i+len-1 <str.length){ var t=str.slice(i,i+len) if(str1.includes(t)){ arr.push(t) } } } len -- } return [...new Set(arr)].reduce((p,c) => {return p.length>c.length ? p : c}) }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算