leetCode1023 駝峰式匹配

2021-10-16 20:18:45 字數 2391 閱讀 4702

目錄

一、題目描述

二、解題思路

三、**實現

如果我們可以將小寫字母插入模式串 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".

"framebuffer" 可以這樣生成:"f" + "rame" + "b" + "uffer".

示例 2:

輸入:queries = ["foobar","foobartest","football","framebuffer","forcefeedback"], pattern = "foba"

輸出:[true,false,true,false,false]

解釋:

"foobar" 可以這樣生成:"fo" + "o" + "ba" + "r".

"football" 可以這樣生成:"fo" + "ot" + "ba" + "ll".

示例 3:

輸出:queries = ["foobar","foobartest","football","framebuffer","forcefeedback"], pattern = "fobat"

輸入:[false,true,false,false,false]

解釋:

"foobartest" 可以這樣生成:"fo" + "o" + "ba" + "r" + "t" + "est".

這道題如果用字典樹來做,當然可以做,但就我個人而言,感覺有點不划算。**量不比雙指標少,主要是只有乙個pattern串,直接用指標操作這個串就行了。如果pattern是個string陣列的話,使用字典樹可能會好一些。

雙指標遍歷解法:

1. 分別使用指標q和p指向queries中當前遍歷字串queries[i]和pattern串的開頭;

2. 如果queries[i][q] == pattern[p],則兩個指標都++;

3. 如果queries[i][q] != pattern[p]且queries[i][q]為小寫字元,則只有q++,因為小寫字母可以隨意插入;

4. 如果queries[i][q] != pattern[p]且queries[i][q]為大寫字元,則不匹配,返回false;

5. 注意若pattern已經遍歷完成,但是queries[i]還沒有結束,且後續字元全為小寫,則返回true;否則返回false。

#include using namespace std;

vectorcamelmatch(vector& queries, string pattern) else if (islower(queries[i][q])) else

}//如果query串還有字元並且為小寫,則繼續往後走

while (q < queries[i].size() && islower(queries[i][q]))

//必須兩個字串都走到結尾,才為true

res[i] = (q == queries[i].size() && p == pattern.size());

}return res;

}int main() ;

string pattern = "fobat";

vectorres = camelmatch(queries, pattern);

for (auto&& i : res)

return 0;

}

Leetcode 1023 駝峰式匹配

如果我們可以將小寫字母插入模式串 pattern 得到待查詢項 query,那麼待查詢項與給定模式串匹配。我們可以在任何位置插入每個字元,也可以插入 0 個字元。給定待查詢列表 queries,和模式串 pattern,返回由布林值組成的答案列表 answer。只有在待查項 queries i 與模...

1023 駝峰式匹配

如果我們可以將小寫字母插入模式串pattern得到待查詢項query,那麼待查詢項與給定模式串匹配。我們可以在任何位置插入每個字元,也可以插入 0 個字元。給定待查詢列表queries,和模式串pattern,返回由布林值組成的答案列表answer。只有在待查項queries i 與模式串patte...

LeetCode 面試題 駝峰式匹配

題目描述 如果我們可以將小寫字母插入模式串pattern得到待查詢項query,那麼待查詢項與給定模式串匹配。我們可以在任何位置插入每個字元,也可以插入 0 個字元。給定待查詢列表queries,和模式串pattern,返回由布林值組成的答案列表answer。只有在待查項queries i 與模式串...