0

厳密に一致する文字列で構成されるメッセージがあります。メッセージから厳密に一致する文字列を削除したい。近いとは、2つの文字列が全長の最大80%に一致する場合、そのうちの1つが重複していると見なして削除する必要があることを意味します。

System.Linq;一致しない文字が1つある場合でも、distinct()メソッドまたは同様の戦略は、以下で実装したようには機能しません。

string[] masg = {"Hello World","Hello World One","Hello-World","How are you","How are u"};

var distinctStr = masg.Distinct();
masg="";

foreach(string str in distinctStr)
    masg+=str+"~";

必要な出力

Hello World〜お元気ですか

どうやってするの 。私が経験すべきアイデアやさらなる概念を教えてください。ありがとう。

4

1 に答える 1

2

最初に行う必要があるのは、たとえばレーベンシュタイン距離を使用して、文字列間の距離を定義することです。その後、必要な距離よりも短い距離の別の文字列がセットに含まれていない限り、文字列を調べてセットに追加するだけです。

于 2012-11-09T02:25:02.323 に答える