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

Իդեան այն է, որ տառերի դասավորությունը նորմալացնում է բառը, և բոլոր անագրամները ունեն նույն դասավորված տեսքը։