Python 字符串哈希


題目大意

將字符組成相同的字符串分成一類

input

["eat", "tea", "tan", "ate", "nat", "bat"]

output

[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]

Solution

由於python中tuple類型可以直接作為map的key,因此可以直接將需要哈希的字符串或者數組放入一個list,隨后轉成tuple,即可實現hashmap的功能。

此題只需將統計每個字母出現次數的桶哈希,最后在同一個哈希集合中的元素即為題意中的同一類字符。

from collections import defaultdict
from typing import List
class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        mp = defaultdict(list)

        for str in strs:
            cnt = [0]*26
            for ch in str:
                cnt[ord(ch) - ord('a')] += 1
            mp[tuple(cnt)].append(str)

        return list(mp.values())

s = Solution()
print(s.groupAnagrams(["eat", "tea", "tan", "ate", "nat", "bat"]))


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM