Sobes.tech
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.