【发布时间】:2014-06-27 21:27:10
【问题描述】:
我想使用哈希表来查找唯一字符,因为它对我来说似乎更有效,例如,哈希表中的 hello 将是=> {h:1,e:1,l:2,o:1} & since value大于 1 则字符串不是唯一的。我知道我可以用 ascii 方式计算唯一字符,但我想实现 hashtable 方式。
请注意,我不想要正则表达式实现。
static void findHashUnique(String str)
{
Hashtable<Character, Integer> ht = new Hashtable<Character, Integer>();
for(int i=0;i<str.length();i++)
{
int cnt=1;
if(!ht.containsKey(str.charAt(i)))
{
ht.put(str.charAt(i), cnt);
}
}
System.out.print(ht);
}
我被困在如何首先初始化哈希表并检查值是否存在然后递增的部分。在 'l' 的情况下,它将递增到 2 而不是 1,因为键是相同的。 还有这个解决方案有效吗?
【问题讨论】:
-
只需使用 HashSet(它使用 Hashtable,但那又怎样)。
-
HashSet 删除重复项.. 我为什么要使用它?