function test2(a,b){
var result=""
for(i=0;i<a.length;i++){
for(j=0;j<b.length;j++){
var temp=true;
var cols;
var m=i;
var n=j;
while(a.charAt(m)==b.charAt(n)){
if(temp){
cols=m;
temp=false;
}
m++;
n++;
if(m==a.length||n==b.length||a.charAt(m)!=b.charAt(n)){
if((m-1-cols)>result.length){
result=a.substring(cols,m);
}
temp=true;
}
if(m==a.length||m==b.length){
break;
}
}
}
}
return result;
}
alert(test2("113","133"))
全冠清 写道
cuixiping 写道
上面的有个地方写错了,第3行最L1=s1.length里的s1应该是s2.
刚才再改了个更优化的:
function findStr(s1,s2){
var S=sstr="",L1=s1.length,L2=s2.length;
if(L1>L2){var s3=s1;s1=s2,s2=s3,L1=s2.length;}
for(var j=L1;j>0;j--)
for(var i=0;i<=L1-j;i++){
sstr = s1.substr(i,j);
if(s2.indexOf(sstr)>=0) return sstr;
}
return "";
}
多谢指点。
分享到:
相关推荐
本文实例讲述了JavaScript自定义函数实现查找两个字符串最长公共子串的方法。分享给大家供大家参考,具体如下: //查找两个字符串的最长公共子串 function findSubStr(s1,s2){ var S=sstr= ,L1=s1.length,L2=s2....
在本文中,我们探讨了如何使用JavaScript(js)编写一个函数来找出两个字符串中的最大公共子串。这涉及到字符串处理的知识,以及算法的实现,特别是动态规划和双指针技术。 首先,需要明确的是字符串的最大公共子串...
标题中的"JavaScript实现求最大公共子串的方法"指的是在JavaScript编程语言中寻找两个字符串共有的最长子串。这个任务在计算机科学中属于字符串处理的一部分,常用于文本分析、比较和搜索算法。 描述中提到的...
这种方法在JavaScript中可以通过两个索引变量实现。 4. **KMP算法**:Knuth-Morris-Pratt(KMP)算法是一种高效的字符串匹配算法,避免了多余的回溯。它通过构建部分匹配表来提高查找效率,适合在JavaScript中处理...
2. **Jaccard相似度**:基于集合论,计算两个字符串的公共子串占总子串集合的比例。它适用于短字符串和关键词的比较。 3. **余弦相似度**:通过计算两个字符串的向量表示之间的夹角余弦值来评估相似性,适用于较长...
题目给出的代码是一个JavaScript实现的动态规划算法,用于求解两个字符串的最长公共子串。主要分为以下几个部分: 1. 初始化二维数组dp:dp[i][j]表示s1的前i个字符与s2的前j个字符之间的最长公共子串的长度。这里...
在编程领域,数组和字符串是两个非常基础且重要的概念,它们在各种编程语言中都扮演着核心角色。数组是存储相同类型数据集合的一种结构,而字符串则是字符类型的数组。在这个"09 数组及字符串实验"中,我们将深入...
7. **最长公共子序列** 和 **最长公共子串**:找出两个字符串中最长的连续子序列或子串,它们在原始字符串中都存在,这在比较文本或生物序列时非常有用。 8. **Hamming Distance**:如果两个字符串长度相同,...
这是一个简单的JavaScript实现,用于找出两个字符串之间的最长公共连续子串。要使用此功能,请遵循以下步骤: 1. 将main.js文件导入您的项目。 2. 调用`longestCommonSubstring(str1, str2)`函数,其中`str1`和`str...
两个字符串的公共子序列是同时存在于这两个字符串中的任意字符序列,但不必要连续。例如,“ABCD”和“ACDF”的一个最长公共子序列是“ACD”。最长公共子序列不考虑子序列在原字符串中的相对位置,而最长公共子串则...
2. **最长公共子串(Longest Common Substring)**:给定两个字符串,找到它们之间最长的公共子串。这是一个经典的问题,可以使用动态规划解决。 3. **反转字符串(Reverse String)**:例如反转`"hello"`为`"olleh...
2. **动态规划**:Ukkonen的算法使用动态规划来计算最长公共前后缀,即模式字符串中任意两个后缀的最大相同长度。通过这种方式,算法可以快速检测到潜在的匹配子串。 3. **扩展操作**:在构建后缀树的过程中,如果...
8. **字符串匹配**:KMP算法、Boyer-Moore算法是字符串匹配的经典算法,它们能够在大量文本中高效地查找子串。 9. **数据结构**:JavaScript中的数据结构如数组、链表、栈、队列、堆、哈希表、树等,是实现算法的...
LeetCode判断字符串是否循环 leetcode-js My leetcode answers written in JavaScript. # 题目 解答 难度 备注 1 两数之和 简单 2 两数相加 中等 3 无重复字符的最长子串 中等 4 寻找两个有序数组的中位数 困难 7 ...
检查两个字符串数组是否等效-简单 编辑距离-困难 文字对齐-困难 数一数二-轻松 最长子串,不包含重复字符-中 最长的公共前缀-简单 有效数字-硬 用英语重建原始数字-中 删除回文序列-轻松 产生括号-中 检查字符串是否...
- `replaceAll`: 在字符串中全局替换某个子串。 3. **类型检查** - `isType`: 判断变量的类型,如`isString`, `isNumber`, `isObject`等。 - `isArray`: 检查变量是否为数组。 - `isFunction`: 判断是否为函数...
它能帮助找到一个字符串中最相似的子串,这对于实现自动补全、拼写检查等功能非常有用。match函数通过计算Levenshtein距离(一种衡量字符串相似度的指标)来找到最接近的匹配。 3. **patch**:patch模块负责生成和...
检查字符串是否旋转了两位罗马数字到整数 字谜 最长公共子串 删除重复项 形成回文 字符串中最长的不同字符实现 Atoi 实现 strstr 最长公共前缀子数组与给定的总和解决了上述问题? 再问一些问题 链接列表: 在链表中...