8.28 - hard - 118

664. Strange Printer

记忆化搜索,感觉有时候能想到DP基本上就算是胜利了。

class Solution(object):
    def strangePrinter(self, S):
        """
        :type s: str
        :rtype: int
        """
        memo = {}
        def dp(i, j):
            if i > j: return 0
            if (i, j) not in memo:
                ans = dp(i+1, j) + 1
                for k in xrange(i+1, j+1):
                    if S[k] == S[i]:
                        ans = min(ans, dp(i, k-1) + dp(k+1, j))
                memo[i, j] = ans
            return memo[i, j]

        return dp(0, len(S) - 1)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,350评论 0 33
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,408评论 25 709
  • 琳琳丽阅读 1,248评论 0 0
  • 一个即使你结婚都会爱你的男人是什么样的?你有幻想过吗?那些喜欢看np小说的同学,说你们呢。 然后遇到了他,是个没长...
    jianshuqu阅读 1,202评论 0 2
  • “站住,你还跑?快乖乖跟我回警察局”。镜子面前,一个满脸严肃的小女孩,穿着一身牛仔装,神气地拿着一把玩具枪对着躺...
    北辰凡七阅读 1,020评论 0 3