var字符串1='applegate'; var string2=“门”; 函数包含字符串(字符串1,字符串2){ var j=0; var k=0; var包含='false'; var charArray1=字符串1.split(''); var charArray2=字符串2.split(“”); for(var i=0;i<charArray2.length;i++){ j=i; if(字符数组1[j++]!=字符数组2[k++]){ contains=“false”; }其他{ contains=“true”; } } console.log(包含); } containsString(字符串1,字符串2);
-
4 en.wikipedia.org/wiki/String_searching_algorithm – 莱伊- ♦ 评论 2016年10月17日0:24 -
不需要将字符串转换为字符数组。 字符串已经是字符数组 – 布莱恩·陈 评论 2016年10月17日0:29 -
两个用于嵌套循环。 – Nayuki公司 评论 2016年10月17日0:38
4个答案
var字符串1=“应用程序”; var string2=“门”; var string3=“苹果”; var字符串4=“腿”; var string5=“香蕉”; 函数containsString(字符串1,字符串2){ var charArray1=字符串1.split(“”); var charArray2=字符串2.split(“”); var匹配=0; //从第一个字符串的开始迭代到第一个字符串长度减去第二个字符串长度 //您不需要迭代长度不超过第二个字符串的最后一部分,因为它将为false for(var i=0;i<charArray1.length-charArray 2.length+1;i++){ //每次迭代时重置匹配计数器 匹配=0; //迭代第二个字符串 对于(var j=0;j<charArray2.length;j++){ //比较相应的字符位置 如果(字符数组1[i+j]==字符数组2[j]){ 匹配++; //只是为了登录控制台 控制台.log(i,j,匹配,字符数组1[i+j],字符数组2[j]); }其他{ //只是为了登录控制台 控制台.log(i,j,匹配,字符数组1[i+j],字符数组2[j]); //如果不匹配,则跳过当前检查 断裂; } //如果已经找到匹配项,则停止检查并返回true if(match==charArray2.长度){ 返回true; } } } //迭代结束前未找到匹配项 返回false; } console.log(containsString(string1,string2)); console.log(containsString(string1,string3)); console.log(containsString(字符串1,字符串4)); console.log(containsString(string1,string5));// 干草堆里没有针 console.log(containsString(string4,string1));// 干草堆比针还短
函数containsString(字符串1,字符串2){ console.log(字符串1.match(字符串2)!= 无效的? “是”:“否”); }
var字符串1='applegate'; var string2=“门”; 函数containsString(字符串1,字符串2){ var j=0; var k=0; var包含='false'; var charArray1=字符串1.split(“”); var charArray2=字符串2.split(“”); for(变量i=0;i<charArray2.length;i++){ j=i; if(字符数组1[j++]!=字符数组2[k++]){ contains=“false”; 断裂; }其他{ contains=“true”; } } console.log(包含); }
函数subSearch(长、短){ var计数=0 对于(i=0;i<long.length;i++){ 对于(j=0;j<短长度;j++){ if(短[j]!=长[i+j]){ 断裂; } 如果((j+1)==短长度){ 计数++; } } } 返回计数; }