<
ARTS 第十一周
>
上一篇

ARTS 第十周
下一篇

ARTS 第十二周
Toc
ARTS Week-11

Algorithm

5087. 活字印刷

你有一套活字字模 tiles,其中每个字模上都刻有一个字母 tiles[i]。返回你可以印出的非空字母序列的数目。

    示例 1:
    
    输入:"AAB"
    输出:8
    解释:可能的序列为 "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA"。
    示例 2:
    
    输入:"AAABBC"
    输出:188

    提示:
    
    1 <= tiles.length <= 7
    tiles 由大写英文字母组成

解题思路:

这道题是一道典型的回溯算法,可以用递归解法。

解题代码:

    class Solution:
        def numTilePossibilities(self, tiles: str) -> int:
            from collections import Counter
            from copy import copy
            counter = dict(Counter(tiles))
            ans = []
            def _helper(co, s):
                if not co:
                    return 
                
                for c in co.keys():
                    _co = copy(co)
                    _co[c] -= 1
                    ans.append(s + c)
                    if _co[c] == 0:
                        _co.pop(c)
                    _helper(_co, s + c)
            
            _helper(counter, '')
            return len(ans)

Review

How To Ask Questions The Smart Way - Eric S. Raymond

说明了作者所认为一位发问者事前应该要做好什么,而什么又是不该做的。作者认为这样能让问题容易令人理解,而且发问者自己也能学到较多东西。此文在网络上受到欢迎,被广泛转载而广为人知甚至奉为经典。著名的两个缩写STFW(Search the fxxking web)以及RTFM(Read the fxxking manual)就是出自本文。

Tip

✍️一个静态博客写作客户端 (A static blog writing client) https://gridea.dev/

img1

Share

推送通知是如何做到的?手机耗电的技术背景是怎么回事儿?详解推送技术架构之坑

这篇文章简单介绍了消息推送技术的发展历程,最后还提到了为什么我们需要 IPV6

Top
Foot