目錄
一、題目描述
二、解題思路
三、**實現
如果我們可以將小寫字母插入模式串 pattern 得到待查詢項 query,那麼待查詢項與給定模式串匹配。(我們可以在任何位置插入每個字元,也可以插入 0 個字元。)
給定待查詢列表 queries,和模式串 pattern,返回由布林值組成的答案列表 answer。只有在待查項 queries[i] 與模式串 pattern 匹配時, answer[i] 才為 true,否則為 false。
示例 1:
輸入:queries = ["foobar","foobartest","football","framebuffer","forcefeedback"], pattern = "fb"示例 2:輸出:[true,false,true,true,false]
示例:
"foobar" 可以這樣生成:"f" + "oo" + "b" + "ar"。
"football" 可以這樣生成:"f" + "oot" + "b" + "all".
"framebuffer" 可以這樣生成:"f" + "rame" + "b" + "uffer".
輸入:queries = ["foobar","foobartest","football","framebuffer","forcefeedback"], pattern = "foba"示例 3:輸出:[true,false,true,false,false]
解釋:
"foobar" 可以這樣生成:"fo" + "o" + "ba" + "r".
"football" 可以這樣生成:"fo" + "ot" + "ba" + "ll".
輸出: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 與模式串...