Number of Distinct Roll Sequences LeetCode solution in Python
1mod = 1000000007234@cache5def func(n, prev, pp):6if n == 0:7return 18ans = 09for i in range(1, 7):10if prev == -1:11ans += func(n - 1, i, prev)12ans = ans % mod13elif pp == -1:14if math.gcd(i, prev) == 1 and i != prev:15ans += func(n - 1, i, prev)16ans = ans % mod17else:18if math.gcd(i, prev) == 1 and i != prev and i != pp:19ans += func(n - 1, i, prev)20ans = ans % mod21return ans222324class Solution:2526def distinctSequences(self, n: int) -> int:27return func(n, -1, -1)