私は2文字列配列を持っています。配列#1は約250万文字列、配列#2は約450万文字列です。配列#2の文字列が配列#1の文字列内にあるかどうかを確認してから削除する必要があります。大規模な配列から大量の部分一致文字列を取り除く
「文字列には別の文字列が含まれている」という要件のため、私はバイナリ検索などを使用できず、プロセスは30時間以上かかります。
「文字列には別の文字列が含まれています」という意味は、配列#1には文字列「houseboat」が含まれ、配列#2にはどこかの「house」が含まれているため「house」は「houseboat」配列#1から "ハウスボート"を除去しなければならない。
例(実際のない、どちらか動作していない)のコードでは、より良い、それを説明する:
for i:=0 to length(array1)-1 do
begin
for j:=0 to length(array2)-1 do
begin
if ansicontainstext(array1[i],array2[j]) then
begin
martrecordtoremove;
break;
end;
end;
end;
これは、すべての文字列のために約30時間かかります。
私の質問は、これをより速く行う方法はありますか?
あなたの質問は何ですか? –