Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Semrush - keyword research tool

Turn ChatGPT, Claude, Gemini, And CoPilot Into Your Personal Assistant, Business Coach, Content Creator, And More

AFFILIATE MARKETING Your all-in-one performance engine Manage affiliates, creators, and customer referrals in one unified platform—turning every partnership into measurable growth
Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

42,683 questions

55,435 answers

573 users

How to group Anagrams from an array of strings in Go

1 Answer

0 votes
package main

import (
    "fmt"
    "sort"
    "strings"
)

// Function to group anagrams
func groupAnagrams(strs []string) [][]string {
    anagramMap := make(map[string][]string)

    for _, str := range strs {
        sortedStr := sortString(str) // Sort characters in the string
        anagramMap[sortedStr] = append(anagramMap[sortedStr], str)
    }

    // Collect grouped anagrams into a slice
    var result [][]string
    for _, group := range anagramMap {
        result = append(result, group)
    }

    return result
}

// Helper function to sort characters in a string
func sortString(s string) string {
    chars := strings.Split(s, "")
    sort.Strings(chars)
    return strings.Join(chars, "")
}

func main() {
    inputWords := []string{"eat", "tea", "tan", "ate", "nat", "bat", "tae"}
    groupedAnagrams := groupAnagrams(inputWords)

    for _, group := range groupedAnagrams {
        fmt.Println(strings.Join(group, " "))
    }
}



/*
run:

tan nat
bat
eat tea ate tae

*/

 



answered Jun 9, 2025 by avibootz
...