Given an array of lowercase strings, group the strings that are anagrams of one another.
Return groups in the order their character signature first appears, and keep words inside each group in input order.
Inputwords = ["eat", "tea", "tan", "ate", "nat", "bat"]
Output[["eat", "tea", "ate"], ["tan", "nat"], ["bat"]]
Inputwords = ["a"]
Output[["a"]]
1 ≤ words.length ≤ 10,000