Je cherchais une solution pour trouver les caractères en double dans une chaîne de caractères et j'étais intéressé par une solution avec des opérations par bit.
J'ai trouvé une telle variante avec les opérations bit à bit. Mais dans celle-ci, la recherche se fait dans la plage a-z de la table ASCII.
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
}
Est-il possible de faire une solution universelle, comme l'exemple ci-dessus, mais seulement pour une chaîne unicode aléatoire (hiéroglyphes, emoji, etc.) ?