Medium

Camelcase MatchingC++

Full explanation · Time O(n * l) · Space O(1)

// Time:  O(n * l), n is number of queries
//                , l is length of query
// Space: O(1)

class Solution {
public:
    vector<bool> camelMatch(vector<string>& queries, string pattern) {
        vector<bool> result;
        for (const auto& query : queries) {
            result.emplace_back(is_matched(query, pattern));
        }
        return result;
    }

private:
    bool is_matched(const string& query, const string& pattern) {
        int i = 0;
        for (const auto& c : query) {
            if (i < pattern.length() && pattern[i] == c) {
                ++i;
            } else if (isupper(c)) {
                return false;
            }
        }
        return i == pattern.length();
    }
    
};