Skip to content

Instantly share code, notes, and snippets.

@codertcet111
Created April 4, 2024 03:56

Revisions

  1. codertcet111 created this gist Apr 4, 2024.
    25 changes: 25 additions & 0 deletions leetcode_49_group_anagrams.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,25 @@
    Leetcode 49 Group Anagram

    # @param {String[]} strs
    # @return {String[][]}

    def group_anagrams(strs)
    sum_ascii_hash = {}
    strs.each_with_index do |str, i|
    sorted_aa = str.chars.sort.join
    sum_ascii_hash["#{sorted_aa}"] ? sum_ascii_hash["#{sorted_aa}"] << i : sum_ascii_hash["#{sorted_aa}"] = [i]
    end
    sum_ascii_hash.values.map{|ind_arr| ind_arr.map{|ind| strs[ind]}}
    end

    # Partially correct approach by calculating ascii value
    # def old_group_anagrams(strs)
    # sum_ascii_hash = {}
    # strs.each_with_index do |str, i|
    # sum_key = str.split("").uniq.sum { |char| char.ord }
    # Ignore: #sum_key = str.split("").sum { |char| char.ord }
    # Ignore: #sum_key = str.split("").each_with_index.map{|char, i| char.ord * i}.sum
    # sum_ascii_hash["#{sum_key}"] ? sum_ascii_hash["#{sum_key}"] << i : sum_ascii_hash["#{sum_key}"] = [i]
    # end
    # sum_ascii_hash.values.map{|ind_arr| ind_arr.map{|ind| strs[ind]}}
    # end