Senior
Bir kelimenin anagramlarını sözlükte nasıl bulabilirim?
sobes.tech yapay zeka
AI'dan gelen yanıt
Go dilinde bir sözlükte bir kelimenin anagramlarını bulmak için, kelimenin harflerini sıralamayı anahtar olarak kullanabilirsiniz. Sıralandığında aynı diziyi veren tüm kelimeler birbirinin anagramıdır.
Örnek:
package main
import (
"fmt"
"sort"
"strings"
)
func sortString(s string) string {
chars := strings.Split(s, "")
sort.Strings(chars)
return strings.Join(chars, "")
}
func findAnagrams(word string, dictionary []string) []string {
key := sortString(word)
var anagrams []string
for _, w := range dictionary {
if w != word && sortString(w) == key {
anagrams = append(anagrams, w)
}
}
return anagrams
}
func main() {
dict := []string{"listen", "silent", "enlist", "google", "inlets", "banana"}
word := "listen"
fmt.Println(findAnagrams(word, dict)) // [silent enlist inlets]
}
Fikir, harflerin sıralanmasının kelimeyi normalize ettiği ve tüm anagramların aynı sıralı forma sahip olduğudur.