1023. 驼峰式匹配
如果我们可以将小写字母插入模式串 pattern
得到待查询项 query
,那么待查询项与给定模式串匹配。(我们可以在任何位置插入每个字符,也可以插入 0 个字符。)
给定待查询列表 queries
,和模式串 pattern
,返回由布尔值组成的答案列表 answer
。只有在待查项 queries[i]
与模式串 pattern
匹配时, answer[i]
才为 true
,否则为 false
。
示例 1:
输入:queries = ["FooBar","FooBarTest","FootBall","FrameBuffer","ForceFeedBack"], pattern = "FB"
输出:[true,false,true,true,false]
示例:
"FooBar" 可以这样生成:"F" + "oo" + "B" + "ar"。
"FootBall" 可以这样生成:"F" + "oot" + "B" + "all".
题解
/**
* @param {string[]} queries
* @param {string} pattern
* @return {boolean[]}
*/
var camelMatch = function(queries, pattern) {
let res = [];
if (!queries || queries.length === 0) {
return res;
}
for (let i = 0; i < queries.length; ++i) {
res.push(match(queries[i], pattern));
}
return res;
};
function match(str, pattern) {
let j = 0;
for (let i = 0; i < str.length; ++i) {
if (j < pattern.length && str[i] === pattern[j]) {
++j;
}
// 若str出现在pattern中不存在的大写字母,则直接返回false
else if (str[i] >= 'A' && str[i] <= 'Z') {
return false;
}
}
return j === pattern.length;
}