-2

我有 2 个字符串

string1="fruit,animal,vehicle";
string2="plane,fruit,culture,animal";

因此,如果我比较 string1 和 string2 它应该说 true,因为fruit,animal 存在于两个字符串中的字符串中,否则如果不存在则为 false。

4

3 回答 3

3

将数组 1 中的每个元素与数组 2 中的每个元素进行比较可能会非常慢,因为运行时间呈二次方增长。

该算法如何查找重复项:

  1. 连接两个数组 - 常量运行时
  2. sort() 结果数组 - 运行时间取决于 javascript 引擎使用的算法,但通常应该是 O(n log n)
  3. 迭代它,将每个元素与先行者进行比较 - O(n) 运行时

请注意,当输入字符串本身可能存在重复项时,需要使用相同的技术预先将其删除。

于 2012-09-05T12:17:20.203 回答
0
function compare(string1, string2) {
    var arr1 = string1.split(",");
    var arr2 = string2.split(",");
    for (var i = 0; i < arr1.length; i++) {
        for (var j = 0; j < arr2.length; j++) {
            if (arr1[i] === arr2[j]) {
                return true;
            }
        }
    }
    return false;
}
于 2012-09-05T12:12:51.267 回答
0
var string1="fruit,animal,vehicle",
string2="plane,fruit,culture,animal";
function compare(string1, string2){
     var s = string1.split(",");
     for(var k = 0 ;k < s.length; k++){
        if(string2.indexOf("," + s[k] + ",") )
        { 
          return true;
        }
     }
     return false;
}


compare(string1, string2);
于 2012-09-05T12:44:54.370 回答