Please solve the programming task below using a self-contained code snippet in a markdown code block.

Given a string s and an array of strings words, return the number of words[i] that is a subsequence of s.
A subsequence of a string is a new string generated from the original string with some characters (can be none) deleted without changing the relative order of the remaining characters.

For example, "ace" is a subsequence of "abcde".

 
Please complete the following python code precisely:
```python
class Solution:
    def numMatchingSubseq(self, s: str, words: List[str]) -> int:
```