{"id":19782678,"url":"https://github.com/freddiehaddad/anagrams","last_synced_at":"2026-07-04T17:31:06.515Z","repository":{"id":227468691,"uuid":"771511057","full_name":"freddiehaddad/anagrams","owner":"freddiehaddad","description":"Multithreaded anagram grouping written in Go.","archived":false,"fork":false,"pushed_at":"2024-03-14T12:23:52.000Z","size":3,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-29T11:50:30.363Z","etag":null,"topics":["anagrams","concurrency","concurrent-programming","go","golang","leetcode","leetcode-go","leetcode-golang","leetcode-solution","multithreading","string-manipulation","string-matching","strings"],"latest_commit_sha":null,"homepage":"https://leetcode.com/problems/group-anagrams/description/?envType=study-plan-v2\u0026envId=top-interview-150","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/freddiehaddad.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-13T12:39:38.000Z","updated_at":"2024-03-13T12:46:09.000Z","dependencies_parsed_at":"2024-06-19T13:28:07.574Z","dependency_job_id":"05dcd5d9-2fb9-41fd-b351-41f5b928380f","html_url":"https://github.com/freddiehaddad/anagrams","commit_stats":null,"previous_names":["freddiehaddad/anagrams"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/freddiehaddad/anagrams","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freddiehaddad%2Fanagrams","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freddiehaddad%2Fanagrams/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freddiehaddad%2Fanagrams/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freddiehaddad%2Fanagrams/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/freddiehaddad","download_url":"https://codeload.github.com/freddiehaddad/anagrams/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/freddiehaddad%2Fanagrams/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35130722,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-04T02:00:05.987Z","response_time":113,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anagrams","concurrency","concurrent-programming","go","golang","leetcode","leetcode-go","leetcode-golang","leetcode-solution","multithreading","string-manipulation","string-matching","strings"],"created_at":"2024-11-12T06:05:49.806Z","updated_at":"2026-07-04T17:31:06.495Z","avatar_url":"https://github.com/freddiehaddad.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Multithreaded Group Anagrams\n\nProgram that converts a group of words into groups of anagrams.\n\nThe program works by reading words from the input array and creating a thread\nper word that tokenizes the input. A token contains the original word as well as\na sorted copy of the word. The sorted copy serves as a key for the map. The idea\nis that all anagrams sorted will have the same letters in the same order. The\ntoken is written to a channel for which another thread is listening. Each word\nreceived by the channel is organized in a map based on the token's key.\n\nOnce all words have been processed the map is converted to an array of string\narrays where each element is all the words that are anagrams.\n\n## Example\n\nInput\n\n```text\n[\"eat\", \"tea\", \"tan\", \"ate\", \"nat\", \"bat\"]\n```\n\nIntermediary Representation\n\n```text\n Key   | Value\n-------+-----------------------\n \"aet\" | [\"eat\", \"tea\", \"ate\"]\n \"ant\" | [\"tan\", \"nat\"]\n \"abt\" | [\"bat\"]\n```\n\nResult\n\n```text\n[[\"eat\", \"tea\", \"ate\"], [\"tan\", \"nat\"], [\"bat\"]]\n```\n\n## Thread Flow Diagram\n\n```text\n+-------------------------------+\n| Group()                     G |        +--------------------------+\n|                               |        | Tokenization           G |\n|                               +-------\u003e|                          |----+\n| [\"eat\", \"tea\", ..., \"bat\"]    |        |                          |  G |\n+-------------------------------+        | \"eat\"                    |    |----+\n                                         +------------+-------------+    |  G |\n                                              | \"tea\"                    |    |\n                                              +------------+-------------+    |\n+---------------------------------+                | \"bat\"                    |\n| Map generation                G |                +------------+-------------+\n|                                 |                             |\n| // token                        |\u003c----------------------------+\n| { key: \"aet\", value: \"eat\" }    |\n+---------------------------------+\n\nG: Go Routine\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreddiehaddad%2Fanagrams","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffreddiehaddad%2Fanagrams","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffreddiehaddad%2Fanagrams/lists"}