1# Runtime: 4163 ms (Top 80.92%) | Memory: 673.9 MB (Top 5.26%)2class Solution:3def checkPartitioning(self, s: str) -> bool:4n = len(s)56@lru_cache(None)7def pal(i, j):8if i == j:9return True10if s[i] != s[j]:11return False12if i + 1 == j:13return True14else:15return pal(i + 1, j - 1)1617for i in range(n - 2):18if pal(0, i):19for j in range(i + 1, n - 1):20if pal(i + 1, j) and pal(j + 1, n - 1):21return True22return False