zoukankan      html  css  js  c++  java
  • 【leetcode】1079. Letter Tile Possibilities

    题目如下:

    You have a set of tiles, where each tile has one letter tiles[i]printed on it.  Return the number of possible non-empty sequences of letters you can make.

    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 consists of uppercase English letters.

    解题思路: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)
  • 相关阅读:
    Angular InjectionToken
    ionic 使用入门
    EFcore 横向分表
    .Netcore 默认认证授权
    anut 设计资源
    Aunt entity
    百度人脸真人认证
    Angular 省市区级联
    apache安装
    ppb|ppm
  • 原文地址:https://www.cnblogs.com/seyjs/p/11026153.html
Copyright © 2011-2022 走看看