原题说明
A query word matches a given pattern
if we can insert lowercase letters 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 <= queries.length <= 100
1 <= queries[i].length <= 100
1 <= pattern.length <= 100
All strings consists only of lower and upper case English letters.
解题思路
判断每一条query
与pattern
是否match:
用i
和j
两个index
分别指向query
和pattern
,遍历query
1)当query[i] == pattern[j]
时,++j
2)如果不等且query[i]
为大写字母,return false
遍历query
结束后,判断j
是否走到pattern
末尾
示例代码 (cpp)
1 | class Solution { |
示例代码 (java)
1 | class Solution { |
示例代码 (python)
1 | class Solution(object): |
复杂度分析
时间复杂度: O(m * n)
, n
is the size of queries
, m
is the length of each query
空间复杂度: O(n)
归纳总结
我们在Youtube上更新了视频讲解,欢迎关注!