Group Anagrams
Difficulty: Medium
Category: DSA
Topics: Array, Hash Table, String, Sorting
Asked at: Amazon, Microsoft, Goldman Sachs, Apple, Uber, eBay, VMware, Oracle, Yandex, Expedia, Affirm, Facebook, Google, Bloomberg, Twilio, Docusign, Cisco, Two Sigma, ByteDance, Intel
Given an array of strings `strs`, group the anagrams together. You can return the answer in **any order**.
**Example 1:**
**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.
**Example 2:**
**Input:** strs = [""]
**Output:** [[""]]
**Example 3:**
**Input:** strs = ["a"]
**Output:** [["a"]]
**Constraints:**
- `1 <= strs.length <= 104`
- `0 <= strs[i].length <= 100`
- `strs[i]` consists of lowercase English letters.