java - 以任意顺序给出的同一组字符的唯一哈希值?

标签 java string hash anagram

考虑这个寻找字谜的例子

aabc
abca

它们都是字谜词,我正在寻找一种方法,使它们由字符生成的哈希值相同且唯一。

唯一性很重要,因此两个不同的字符串 aabcxyaq 不会生成相同的哈希

我对此一无所知,但在这里呕吐是为了了解我需要查找什么

最佳答案

对字符串中的字符进行排序并将其用作哈希值。字符串将具有相同的哈希如果它们是彼此的字谜:

String anagramHash(String str) {
    char[] chars = str.toCharArray();
    Arrays.sort(chars);
    return new String(chars);
}

如果您的代码点不在 BMP ( http://docs.oracle.com/javase/7/docs/api/java/lang/Character.html ) 上,这可能不起作用。

或者,生成直方图并将其用作哈希。

关于java - 以任意顺序给出的同一组字符的唯一哈希值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28565442/

相关文章:

java - 将 Jboss 插件更新到 eclipse 时无法访问 Marketplace

java - 在 JTable Java 中显示 JSONArray

java - 正则表达式将整个字符串放入第 1 组

java - 操作转换实现(不是 javascript)

java - 删除字符串的第一个字符 O(1)

python - 使用 .join 函数从列表中连接 python 字符串不会输出想要的结果

python - 在 python 中为目录创建唯一哈希

iphone - 在 iOS 设备上本地保存游戏分数...需要安全吗?

c - 将 argv 字符串传递给 C 中的函数

java - 如何使用 com.google.common.hash.Hashing 解码字符串