zoukankan      html  css  js  c++  java
  • 【leetcode】1023. Camelcase Matching

    题目如下:

    A query word matches a given pattern if we can insert lowercaseletters to the pattern word so that it equals the query. (We may insert each character at any position, and may insert 0 characters.)

    Given a list of queries, and a pattern, return an answer list of booleans, where answer[i] is true if and only if queries[i] matches the pattern.

    Example 1:

    Input: queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FB"
    Output: [true,false,true,true,false]
    Explanation: 
    "FooBar" can be generated like this "F" + "oo" + "B" + "ar".
    "FootBall" can be generated like this "F" + "oot" + "B" + "all".
    "FrameBuffer" can be generated like this "F" + "rame" + "B" + "uffer".

    Example 2:

    Input: queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FoBa"
    Output: [true,false,true,false,false]
    Explanation: 
    "FooBar" can be generated like this "Fo" + "o" + "Ba" + "r".
    "FootBall" can be generated like this "Fo" + "ot" + "Ba" + "ll".
    

    Example 3:

    Input: queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FoBaT"
    Output: [false,true,false,false,false]
    Explanation: 
    "FooBarTest" can be generated like this "Fo" + "o" + "Ba" + "r" + "T" + "est".
    

    Note:

    1. 1 <= queries.length <= 100
    2. 1 <= queries[i].length <= 100
    3. 1 <= pattern.length <= 100
    4. All strings consists only of lower and upper case English letters.

    解题思路:这种模式匹配的题目,感觉还是用正则表达式简单些。例如 pattern = "FoBaT",转换成正则表达式的pattern="^[a-z]*F[a-z]*o[a-z]*B[a-z]*a[a-z]*T[a-z]*$"。

    代码如下:

    class Solution(object):
        def camelMatch(self, queries, pattern):
            """
            :type queries: List[str]
            :type pattern: str
            :rtype: List[bool]
            """
            res = []
            import re
            rePattern = '^[a-z]*'
            for i,v in enumerate(pattern):
                rePattern += v
                rePattern += '[a-z]*'
            #rePattern = rePattern[:-2]
            rePattern += '$'
            for i in queries:
                r = re.search(rePattern, i)
                if r == None:
                    res.append(False)
                    continue
                r = r.group()
                subq = i[len(r):]
                res.append(len(subq) == 0 or subq.islower())
            return res
  • 相关阅读:
    jmeter如何引用自己编写的java文件编译的jar包
    Vue+Django REST framework 打造生鲜电商项目(学习笔记二)
    mysql笔试题
    面试遇到的问题
    Idea中maven项目pom文件中已引入testng但项目文件中无法引入@Test
    记录一次TestNg+MyBatis中的SqlSession出现的问题,问题虽然解决了但尚未明白问题原因
    PyMySQL的基本操作
    MySQL循环语句
    Vue父子组件和非父子组件间的通信
    Python的静态方法和类成员方法
  • 原文地址:https://www.cnblogs.com/seyjs/p/10673756.html
Copyright © 2011-2022 走看看