zoukankan      html  css  js  c++  java
  • [Leetcode Weekly Contest]184

    链接:LeetCode

    [Leetcode]5380. 数组中的字符串匹配

    给你一个字符串数组 words ,数组中的每个字符串都可以看作是一个单词。请你按 任意 顺序返回 words 中是其他单词的子字符串的所有单词。
    如果你可以删除(words[j])最左侧和/或最右侧的若干字符得到(word[i]),那么字符串(words[i]) 就是(words[j])的一个子字符串。

    直接暴力就可以了。

    class Solution:
        def stringMatching(self, words: List[str]) -> List[str]:
            res = []
            for w1 in words:
                for w2 in words:
                    if w1 in w2 and w1!=w2:
                        res.append(w1)
                        break
            return res
    

    [Leetcode]5381. 查询带键的排列

    给你一个待查数组 queries ,数组中的元素为 1 到 m 之间的正整数。 请你根据以下规则处理所有待查项(queries[i])(从 i=0 到 i=queries.length-1):
    一开始,排列(P=[1,2,3,...,m])
    对于当前的 i ,请你找出待查项(queries[i])在排列 P 中的位置(下标从 0 开始),然后将其从原位置移动到排列 P 的起始位置(即下标为 0 处)。注意,(queries[i])在 P 中的位置就是(queries[i])的查询结果。
    请你以数组形式返回待查数组 queries 的查询结果。

    直接暴力就可以了。

    class Solution:
        def processQueries(self, queries: List[int], m: int) -> List[int]:
            nums = [i for i in range(1,m+1)]
            res = []
            for q in queries:
                ind = nums.index(q)
                res.append(ind)
                nums.pop(ind)
                nums = [q] + nums
            return res
    

    [Leetcode]5382. HTML 实体解析器

    「HTML 实体解析器」 是一种特殊的解析器,它将 HTML 代码作为输入,并用字符本身替换掉所有这些特殊的字符实体。
    HTML 里这些特殊字符和它们对应的字符实体包括:
    双引号:字符实体为("),对应的字符是 " 。
    单引号:字符实体为('),对应的字符是 ' 。
    与符号:字符实体为(&),对应对的字符是 & 。
    大于号:字符实体为(>),对应的字符是 > 。
    小于号:字符实体为(&lt;),对应的字符是 < 。
    斜线号:字符实体为(&frasl;),对应的字符是 / 。
    给你输入字符串 text ,请你实现一个 HTML 实体解析器,返回解析器解析后的结果。

    直接暴力就可以了。

    class Solution:
        def entityParser(self, text: str) -> str:
            text = text.replace("&quot;", """).replace("&apos;", "'").replace("&amp;", "&").replace("&gt;", ">").replace("&lt;", "<").replace("&frasl;", "/")
            return text
    

    [Leetcode]5383. 给 N x 3 网格图涂色的方案数

    你有一个 n x 3 的网格图 grid ,你需要用 红,黄,绿 三种颜色之一给每一个格子上色,且确保相邻格子颜色不同(也就是有相同水平边或者垂直边的格子颜色不同)。
    给你网格图的行数 n 。
    请你返回给 grid 涂色的方案数。由于答案可能会非常大,请你返回答案对 10^9 + 7 取余的结果。

    动态规划。每一行分为 ABA(使用AB两种颜色) 和 ABC(使用三种颜色) 这样的两种情况, 且仅有这两种情况:
    在ABA的情况下下一行有 三色情况:CAB,ABC 双色情况:BAB,CAC,CBC这样总共5种情况
    在ABC的情况下下一样有 三色情况:CAB,BCA 双色情况:BAB,BCB这样总共4种情况,
    dp数组中(dp[i][0])存当前行双色数量 (dp[i][1])存当前行三色数量 因此有如下公式:

    [dp[i][0] = dp[i-1][0]*3+dp[i-1][1]*2; ]

    [dp[i][1] = dp[i-1][0]*2+dp[i-1][1]*2; ]

    第一行有6种三色 6种双色 作为初始行

    class Solution:
        def numOfWays(self, n: int) -> int:
            dp = [[0 for _ in range(2)] for _ in range(n)]
            dp[0][0] = 6
            dp[0][1] = 6
            for i in range(1,n):
                dp[i][0] = (dp[i-1][0]*3+dp[i-1][1]*2)%(1000000007)
                dp[i][1] = (dp[i-1][0]*2+dp[i-1][1]*2)%(1000000007)
            return (dp[n-1][0]+dp[n-1][1])%(1000000007)
    

    参考:
    leetcode

  • 相关阅读:
    交换排序------冒泡法 及其优化
    [编程题]最大和子矩阵
    [编程题] N阶楼梯上楼问题
    2017年东北大学计算机专业考博 面试编程题(某教授 实验室)
    幸运的袋子 (牛客网 16年网易内推 编程题)
    OpenvSwitch代码分析之bridge和port
    阅读书籍---程序员必读系列
    嵌入式开发之davinci--- 8168 电源调试总结
    嵌入式开发之davinci--- 8148/8168/8127 中的添加算饭scd 场景检测 文档简介
    嵌入式开发之davinci--- 8148/8168/8127 中的图像缩放sclr、swms之后出现图像视频卡顿、屏幕跳跃的问题
  • 原文地址:https://www.cnblogs.com/hellojamest/p/12685880.html
Copyright © 2011-2022 走看看