【发布时间】:2019-05-19 14:48:55
【问题描述】:
我想检查目标字符串是否包含集合中的字符串。并匹配最长的一个。例如。
目标字符串:str = "eignelaiwgn"
集合字符串:eig、a、eb、eigne、eignep
结果需要eigne
首先我想到了HashMap,但它没有排序。所以我尝试将集合字符串放入ArrayList,然后用字符串长度对列表进行排序。然后使用for each循环检查
if ( str.contains("eigne") )
这需要每次循环列表。有没有更好(更快)的方法来实现这一目标?
【问题讨论】:
-
您可以在对Arraylist进行排序后使用二进制搜索技术在log(n)时间内找到解决方案
-
@Lemmy ,可能不是。我想检查目标字符串是否包含集合中的字符串。如果集合包含目标字符串,则不会。
标签: java string collections