#849. 异位词分组

异位词分组

题目描述

给定 n 个单词组成的单词列表 wordlist(0<n<10000)。所有单词只含小写字母。请将 异位词 组合在一起。 可以按任意顺序返回异位词列表。 字母异位词是由重新排列原单词的所有字母得到的一个新单词。例如,"eat"、"eta"、"ate"都是异位词。

输入格式

第一行一个正整数 n。 第二行 n 个 单词。

输出格式

多行。每行是同一个单词的所有异位词,单词之间用空格隔开。每行顺序不限,行内顺序也不限。

样例

输入样例 1

7
ad eat tree ate eta tee tea

输出样例 1

tree
tee
eat ate eta tea
ad

输入样例 2

8
ad eat tree ae tee tea ddi di

输出样例 2

di
ddi
ae
tree
tee
eat tea
ad

输入样例 3

6
eat tea tan ate nat bat

输出样例 3

bat
tan nat
eat tea ate

提示

分析:异位词的字符组成都是相同的。换一种说法,异位词的字母按字母序排序后都是相同的。 例如, "eat" -> "eat" "eta" -> "eat" "ate" -> "eat" 用一个 unordered_map<string, vector> 保存, 把每个单词的字母按字母序排序后作为key, key的异位词保存在vector。