Senior
Ինչպես գտնել բառի անագրամները բառարանում?
sobes.tech AI
Պատասխան AI-ից
Go լեզվում բառարանի մեջ բառի անագրամները գտնելու համար, դուք կարող եք օգտագործել բառի տառերի դասավորությունը որպես բանալի: Բոլոր բառերը, որոնք դասավորելիս տառերը նույն տողը տալիս են, միմյանց անագրամներ են:
Օրինակ:
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]
}
Իդեան այն է, որ տառերի դասավորությունը նորմալացնում է բառը, և բոլոր անագրամները ունեն նույն դասավորված տեսքը։