Senior
Kā atrast vārda anagrammas vārdnīcā?
sobes.tech AI
Atbilde no AI
Lai atrastu vārda anagrammas vārdnīcā Go valodā, jūs varat izmantot vārda burtu kārtošanu kā atslēgu. Visi vārdi, kuri, kārtojot viņu burtus, dod to pašu virkni, ir savstarpēji anagrammas.
Piemērs:
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]
}
Ideja ir tāda, ka burtu kārtošana normalizē vārdu, un visi anagrammas ir ar vienādu kārtojumu formu.