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

Unique hash for same set of characters given in any order?

考虑这个查找字谜的例子

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) 上的代码点,这可能不起作用。

或者,生成直方图并将其用作散列。