simple using two Pointer and Map
\nclass Solution {\npublic:\n    int numMatchingSubseq(string a, vector<string>& words) {\n        unordered_map<string,int>mp;\n        for(auto it:words){\n  
```\nclass Solution {\npublic:\n    int numMatchingSubseq(string a, vector<string>& words) {\n        unordered_map<string,int>mp;\n        for(auto it:words){\n            mp[it]++;\n        }\n        int ans=0;\n        for(auto x:mp){\n            string s=x.first;\n            int i=0,j=0;\n            while(i<s.length() and j<a.length()){\n                if(s[i]==a[j]){\n                    i++;\n                }\n                j++;\n            }if(i==s.length())ans+=x.second;\n            \n        }\n        return ans;\n    }\n};\n```
[]