Skip to content

Instantly share code, notes, and snippets.

@adurbalo
Last active April 28, 2021 18:54
Show Gist options
  • Save adurbalo/f1c8a75d3f063629862afe5c8094f9e8 to your computer and use it in GitHub Desktop.
Save adurbalo/f1c8a75d3f063629862afe5c8094f9e8 to your computer and use it in GitHub Desktop.

Group Anagrams leetcode (M)

class Solution {
    
    func groupAnagrams(_ strs: [String]) -> [[String]] {
        
        var memo: [[Int]: [String]] = [:]
            
        for s in strs {
            
            var array: [Int] = Array(repeating: 0, count: 26)
            let zeroIndex = Unicode.Scalar(String("a"))!.value
            
            for c in s {
                let offset = Int(Unicode.Scalar(String(c))!.value - zeroIndex)
                array[offset] += 1
            }
            
            var value = memo[array] ?? []
            value.append(s)
            memo[array] = value
        }
        
        return memo.values.map { return $0 }
    }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment