我有一个包含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