leetcodeday49 –字母异位词分组

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。

示例 1:

输入: strs = ["eat", "tea", "tan", "ate", "nat", "bat"]
输出: [["bat"],["nat","tan"],["ate","eat","tea"]]

示例 2:

输入: strs = [""]
输出: [[""]]

示例 3:

输入: strs = ["a"]
输出: [["a"]]

提示:

  • 1 <= strs.length <= 104
  • 0 <= strs[i].length <= 100
  • strs[i] 仅包含小写字母

暴力破万法:

# @lc app=leetcode.cn id=49 lang=python3
#
# [49] 字母异位词分组
#

# @lc code=start
class Solution:
    def groupAnagrams(self, strs: List[str]) -> List[List[str]]:
        def matchstr(s,p):
            lens=len(s)
            lenp=len(p)
            if lens==lenp:
                for i in  range(len(p)):
                    if p[i] in s:
                        h=s.index(p[i])
                        s=s[0:h]+s[h+1:]
                        continue
                    else:
                        return False
                return True
            else:return False
        rev=list()
        rev.append([strs[0]])
        for i in range(1,len(strs)):
            k=0
            for j in range(len(rev)):
                #print(rev,j,i)
                if matchstr(rev[j][0],strs[i]):
                    rev[j].append(strs[i])
                    k=1
                    break
            if k==0:
                rev.append([strs[i]])
        return rev

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注