Sobes.tech
Senior

So'zning anagrammalarini lug'atda qanday topish mumkin?

sobes.tech AI

AIdan javob

Go tilida lugʻatda soʻzning anagrammalarini topish uchun, soʻz harflarining tartibini kalit sifatida ishlatishingiz mumkin. Harflar tartiblanganida bir xil satrni beradigan barcha soʻzlar bir-birining anagrammasidir.

Misol:

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]
}

Fikr shuki, harflarning tartibi soʻzni normallashtiradi va barcha anagrammalar bir xil tartiblangan shaklga ega bo'ladi.