同字母异序词 python_49. 字母异位次分组(Python)
生活随笔
收集整理的這篇文章主要介紹了
同字母异序词 python_49. 字母异位次分组(Python)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
給定一個字符串數組,將字母異位詞組合在一起。字母異位詞指字母相同,但排列不同的字符串。
說明
所有輸入均為小寫字母。
不考慮答案輸出的順序。
示例
輸入: ["eat", "tea", "tan", "ate", "nat", "bat"],
輸出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
解答
我們可以用一個字典存儲所有組合。我們要考慮,字母異位詞具有什么共性,顯然,我們將字母異位詞中的字母進行排序,排序后得到的結果都是一樣的,例如字母異位詞“abc”和“bac”排序后的結果都是“abc”,因此我們可以使用每一組字母異位詞排序后的結果作為鍵,這些字母異位詞組成的列表作為值。
from collections import defaultdict
class Solution:
def groupAnagrams(self, strs):
"""
:param strs: List[str]
:return: List[List[str]]
"""
ans = defaultdict(list)
for s in strs:
ans[tuple(sorted(s))].append(s)
return ans.values()
如有疑問或建議,歡迎評論區留言~
總結
以上是生活随笔為你收集整理的同字母异序词 python_49. 字母异位次分组(Python)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 酷派春雷com.yulong.andro
- 下一篇: python 3.6.5编译安装_Lin