【leetcode】1079. Letter Tile Possibilities

匿名 (未验证) 提交于 2019-12-02 23:43:01

题目如下:

tilestiles[i]

Example 1:

Input: "AAB" Output: 8 Explanation: The possible sequences are "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA". 

Example 2:

Input: "AAABBC" Output: 188 

Note:

  1. 1 <= tiles.length <= 7
  2. tiles

解题思路:tiles的最大长度是7,那么理论上最多有7!种组合,这个数量非常小,可以全排列所有的的可能性然后过滤重复的数据。

代码如下:

class Solution(object):     def numTilePossibilities(self, tiles):         """         :type tiles: str         :rtype: int         """         import itertools         l = range(len(tiles))         dic = {}         for i in range(1,len(l) + 1):             for j in itertools.permutations(l, i):                 v = ''                 for k in j:                     v += tiles[k]                 if v not in dic:dic[v] = 1         return len(dic)

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!