Description
Given an array of strings queries
and a string pattern
, return a boolean array answer
where answer[i]
is true
if queries[i]
matches pattern
, and false
otherwise.
A query word queries[i]
matches pattern
if you can insert lowercase English letters into the pattern so that it equals the query. You may insert a character at any position in pattern or you may choose not to insert any characters at all.
Β
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".
Β
Constraints:
1 <= pattern.length, queries.length <= 100
1 <= queries[i].length <= 100
queries[i]
andpattern
consist of English letters.
Solution
Python3
class Solution:
def camelMatch(self, queries: List[str], pattern: str) -> List[bool]:
m, n = len(queries), len(pattern)
res = [False] * m
for i, words in enumerate(queries):
index = 0
valid = True
for word in words:
if ord("A") <= ord(word) <= ord("Z") and (index == n or word != pattern[index]):
valid = False
break
if index < n and word == pattern[index]:
index += 1
res[i] = valid and index == n
return res