-2

2弦持ってる

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

したがって、string1 と string2 を比較すると、果物、動物が両方の文字列の文字列に存在するため、true と言う必要があります。それ以外の場合、何も存在しない場合は false になります。

4

3 に答える 3

3

実行時間が2次的に増加するため、配列1のすべての要素と配列2のすべての要素の比較は非常に遅くなる可能性があります。

重複を見つけるためのこのアルゴリズムはどうですか?

  1. 2つの配列を連結します-一定の実行時間
  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 に答える