Simple java Solution 72% faster
\nclass Solution {\n    public boolean sub(String s1,String s2){\n        int i=0,j=0;\n        while(i<s1.length()&&j<s2.length()){\n            if(s1.charAt(i
```\nclass Solution {\n    public boolean sub(String s1,String s2){\n        int i=0,j=0;\n        while(i<s1.length()&&j<s2.length()){\n            if(s1.charAt(i)==s2.charAt(j)){\n                i++;\n                \n            }\n            j++;\n        }\n        if(i==s1.length()){\n            return true;\n        }\n        return false;\n    }\n    public int numMatchingSubseq(String s, String[] words) {\n        int ans=0;\n        Map<String,Integer> mp=new HashMap();\n        for(String str:words){\n            mp.put(str,mp.getOrDefault(str,0)+1);\n        }\n       for (Map.Entry<String, Integer> entry : mp.entrySet()) {\n            String key = entry.getKey();\n            if(sub(key,s)){\n                ans+=entry.getValue();\n            }\n   \n        }\n        return ans;\n    }\n}\n```
['Java']