#include <iostream>
#include <vector>
using namespace std;
bool match(const string& query, const string& pattern) {
int i = 0;
for (char ch : query) {
if (i < pattern.length() && ch == pattern[i]) {
i++;
} else if (isupper(ch)) {
return false;
}
}
return i == pattern.length();
}
vector<bool> camelMatch(vector<string>& queries, string pattern) {
vector<bool> result;
for (const string& query : queries) {
result.push_back(match(query, pattern));
}
return result;
}
int main() {
vector<string> queries = {"FooBar", "FooBaz", "FoBaT", "FootBall"};
string pattern = "FoBa";
vector<bool> matches = camelMatch(queries, pattern);
for (bool res : matches) {
cout << (res ? "true" : "false") << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBtYXRjaChjb25zdCBzdHJpbmcmIHF1ZXJ5LCBjb25zdCBzdHJpbmcmIHBhdHRlcm4pIHsKICAgIGludCBpID0gMDsKICAgIGZvciAoY2hhciBjaCA6IHF1ZXJ5KSB7CiAgICAgICAgaWYgKGkgPCBwYXR0ZXJuLmxlbmd0aCgpICYmIGNoID09IHBhdHRlcm5baV0pIHsKICAgICAgICAgICAgaSsrOyAKICAgICAgICB9IGVsc2UgaWYgKGlzdXBwZXIoY2gpKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gaSA9PSBwYXR0ZXJuLmxlbmd0aCgpOwp9Cgp2ZWN0b3I8Ym9vbD4gY2FtZWxNYXRjaCh2ZWN0b3I8c3RyaW5nPiYgcXVlcmllcywgc3RyaW5nIHBhdHRlcm4pIHsKICAgIHZlY3Rvcjxib29sPiByZXN1bHQ7CiAgICBmb3IgKGNvbnN0IHN0cmluZyYgcXVlcnkgOiBxdWVyaWVzKSB7CiAgICAgICAgcmVzdWx0LnB1c2hfYmFjayhtYXRjaChxdWVyeSwgcGF0dGVybikpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKSB7CiAgICB2ZWN0b3I8c3RyaW5nPiBxdWVyaWVzID0geyJGb29CYXIiLCAiRm9vQmF6IiwgIkZvQmFUIiwgIkZvb3RCYWxsIn07CiAgICBzdHJpbmcgcGF0dGVybiA9ICJGb0JhIjsKCiAgICB2ZWN0b3I8Ym9vbD4gbWF0Y2hlcyA9IGNhbWVsTWF0Y2gocXVlcmllcywgcGF0dGVybik7CgogICAgZm9yIChib29sIHJlcyA6IG1hdGNoZXMpIHsKICAgICAgICBjb3V0IDw8IChyZXMgPyAidHJ1ZSIgOiAiZmFsc2UiKSA8PCBlbmRsOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==