0
我有2组字符串,A和B. 我想解决的问题是计算集B中有多少个字符串包含集合A中的任何单个字符串。例如:
答:“a”,“b “
B: ”ABC“, ”DSF“, ”AQC“, ”YYY“, ”XXX“, ”BBB“
结果为3(” ABC”, “AQC”, “BBB”)批处理字符串包含操作优化?
不幸的是,集合A和集合B在我的情况下非常大,例如,集合A有数百万个字符串,集合B有数十亿个字符串。所以我必须在Java语言中采用数十亿的'indexof'操作。该算法的复杂度为O(m * n)。
是否有任何优化算法可以用来使其更快?
刚刚指出的是,即使最好的算法最坏的情况是m * n个,这个问题是并行的。 – esej
如果设置“A”总是包含单个字符,则可以在'O(n)'中实现,其中n是集合'B'的大小。否则它就是上面建议的'O(m * n)'。 –