[PYTHON] damn long formula w/ some reasoning 
IntuitionWe're going to use the Inclusion-Exclusion Principle to count the different ways to get "good" strings.ApproachIn this approach, we use Python mostly a
# Intuition
**We're going to use the Inclusion-Exclusion Principle to count the different ways to get "good" strings.**

# Approach
In this approach, we use Python mostly as a calculator for a long hard-coded formula derived from the [Inclusion-Exclusion Principle](https://en.wikipedia.org/wiki/Inclusion%E2%80%93exclusion_principle). There are four terms in the expression: 
- $26^n$ - all substrings of length $n$ over the lowercase letters
- $(25^n + n*25^{(n-1)} + 2 * 25^n)$ - substrings with 0e + with 1e + with 0L + with 0t
- $(2 * (24^n + n*24^{(n-1)}) + 24^n)$ - substrings with 0e1L + with 0e1t + with 1e1L + with 1e1t
- $(23^n + n*23^{(n-1)})$ - substrings with 1e1L1t + 0e1L1t

# Complexity
- Time complexity:
$O(\log n)$ - The dominant part of the computational cost is calculating exponents to the power $n$. Using [binary exponentiation](https://en.wikipedia.org/wiki/Exponentiation_by_squaring), we can do this in $\log n$ time.

- Space complexity:
$O(1)$

# Code
```python3 []
class Solution:
    def stringCount(self, n: int) -> int:
        if n <= 3:
            return 0
        MOD = 10**9 + 7
        ans = 26**n - (25**n + n*25**(n-1) + 2 * 25**n) + (2 * (24**n + n*24**(n-1)) + 24**n) - (23**n + n*23**(n-1))

        # all subtrings - [with 0e + with 1e + with 0l + with 0t] + [without (l/t)(e/ee) + without lt] - [with 0e0l0t + with 1e0l0t]
        # 5 - leeta: 26**n - [25**n + n*25**(n-1) + 2 * 25**n] + [2 * (24**n + n*24**(n-1)) + 24**n] - [23**n + n*23**(n-1)]
        return ans % MOD
```
['Python3']