我有一個包含10個元素的字符串數組。 現在我需要比較任何這些數組值中可用的值。比較數組中的任何值有效地使用
1選項我想整理的 相同
但進一步分析數組,然後二進制搜索,我發現需要進行比較值不完全相同,它包含了一些價值,但即使在這種情況下,它也應該是成功的。
像值進行比較,
String str = "Author"
String[] arrays = {"@Author","@Auth",@Au...}
str.contains(陣列..),但實際怎麼做。
我有一個包含10個元素的字符串數組。 現在我需要比較任何這些數組值中可用的值。比較數組中的任何值有效地使用
1選項我想整理的 相同
但進一步分析數組,然後二進制搜索,我發現需要進行比較值不完全相同,它包含了一些價值,但即使在這種情況下,它也應該是成功的。
像值進行比較,
String str = "Author"
String[] arrays = {"@Author","@Auth",@Au...}
str.contains(陣列..),但實際怎麼做。
你可以使用動態規劃:
http://www.algorithmist.com/index.php/Longest_Common_Subsequence
該算法檢查字符串的最長子用最小的複雜
這是Java的ALGOR:
http://introcs.cs.princeton.edu/java/96optimization/LCS.java.html
如果你是隻處理只有10個元素的數組......你不需要擔心效率!
您可以簡單地遍歷整個陣列,或者使用String[]
而不是使用List<string>
並使用contains方法。
在這種情況下ArrayList的contains方法將不起作用,因爲該值不完全相同,所以最好的解決方案是循環遍歷整個數組。 – 2012-03-19 06:47:20
最壞情況下陣列的大小是多少? – 2012-03-19 06:41:59
大約1000在最稀有的情況下 – 2012-03-19 06:47:54
然後簡單地按順序進行並執行包含檢查,如果您嘗試刪除填充字符或者如果您編寫自己的比較器來忽略該字符,它會增加計算成本,所以簡單包含適合這裏的好用 – 2012-03-19 07:10:04