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

Given a string s, return the number of distinct non-empty subsequences of s. Since the answer may be very large, return it modulo 109 + 7.
A subsequence of a string is a new string that is formed from the original string by deleting some (can be none) of the characters without disturbing the relative positions of the remaining characters. (i.e., "ace" is a subsequence of "abcde" while "aec" is not.
 
Please complete the following python code precisely:
```python
class Solution:
    def distinctSubseqII(self, s: str) -> int:
```