我正在寻找一种在字符串中查找重复字符的解决方案,我对一种具有位操作的解决方案很感兴趣.
我发现这样一个具有位运算的变体.但在其中,搜索发生在ASCII表的a-z范围内.
func HasDuplicates(str string) (string, bool) {
checker := 0
for _, char := range str {
val := char - 'a'
fmt.Println(val)
if (checker & (1 << val)) > 0 {
fmt.Printf("'%c' is Duplicate\n", char)
return str, false
}
checker |= 1 << val
}
return str, true
}
有没有可能像上面的例子那样,只为随机的unicode字符串(象形文字、表情符号等)制定一个通用的解决方案?