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

You are given a string s.
A split is called good if you can split s into two non-empty strings sleft and sright where their concatenation is equal to s (i.e., sleft + sright = s) and the number of distinct letters in sleft and sright is the same.
Return the number of good splits you can make in s.
 
Please complete the following python code precisely:
```python
class Solution:
    def numSplits(self, s: str) -> int:
```