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

时间:2015-02-17 15:51:02

标签: java string hash anagram

考虑这个寻找字谜的例子

aabc
abca

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

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

我不知道这个,但是在这里呕吐以了解我需要查找的内容

1 个答案:

答案 0 :(得分:1)

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

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)上,这可能不会起作用。

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