2012-11-09 119 views
0

我有一個緊密匹配的字符串組成的消息。我想從消息中刪除密切匹配的字符串。通過關閉我的意思是一樣,如果兩個字符串匹配高達其總長度的80%,然後其中一人應被視爲重複和刪除。刪除緊密匹配字符串C#

System.Linq;或類似stratedgy的不同()方法不會工作像我已經實現下面,因爲即使一個非匹配字符。

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〜你是如何

怎麼做。請給我提供我應該經歷的想法或進一步的概念。謝謝。

+2

如果沒有一些代碼,從開始的,我們大概可以做的最好的是提供一些[閱讀](http://en.wikipedia.org/wiki/Longest_common_subsequence_problem)。 – TheEvilPenguin

+0

感謝邪惡企鵝LCS o是要走的路。謝謝 。 –

回答

2

你需要做的第一件事就是定義之間的距離爲字符串,例如使用Levenshtein distance。在此之後,你只需要經過串,只要集不包含你的願望較低的距離另一個字符串將它們添加到一組。

+0

謝謝,通過LCS,Levenshtein距離。 –