我有很多字符串,我需要检查多少对包含相同字符。
目前,我的策略是创建一个int [128]个字符,并为字符串中的每个字符增加字符数。因此,最后,chars将是一个128个大小的数组,每个索引都映射到一个字符数,并且该值映射为字符数。
然后我会使用Java的Arrays.hashCode()函数对字符进行哈希处理。
有没有更有效的方法来解决这个问题?我尝试了在第一个循环中将字符串中的每个字符(与构建字符一起)进行XOR运算,这是可行的(但是在我的分配测试用例中,这非常慢;我怀疑它们的设计目的是要击败简单的XOR哈希函数)。有没有有效的哈希函数?
答案 0 :(得分:1)
对每个字符串中的字符进行排序。也就是说,您首先要销毁所有订单信息。之后,标准的HashMap
就足够了。