LeetCode - Blind 75 - Group Anagrams

The problem Given an array of strings strs, group the anagrams together. You can return the answer in any order. An anagram is a word or phrase formed by rearranging the letters of a different word or phrase, using all the original letters exactly once. Examples Input: strs = ["eat","tea","tan","ate","nat","bat"] Output: [["bat"],["nat","tan"],["ate","eat","tea"]] Explanation: * There is no string in strs that can be rearranged to form "bat." * The strings "nat" and "tan" are anagrams as they can be rearranged to form each other. * The strings "ate," "eat," and "tea" are anagrams as they can be rearranged to form each other. Input: strs = [""] Output: [[""]] Input: strs = ["a"] Output: [["a"]] Constraints 1 <= strs.length <= 1000 0 <= strs[i].length <= 100 strs[i] is made up of lowercase English letters. Brute force solution func groupAnagrams(_ strs: [String]) -> [[String]] { var res: [String: [String]] = [:] for s in strs { let sortedS = String(s.sorted()) res[sortedS, default: []].append(s) } return Array(res.values) } Explanation The brute force solution: ...

November 1, 2024 · 2 min · Dmytro Chumakov