Number of Distinct Roll Sequences LeetCode solution in Python

1
mod = 1000000007
2

3

4
@cache
5
def func(n, prev, pp):
6
if n == 0:
7
return 1
8
ans = 0
9
for i in range(1, 7):
10
if prev == -1:
11
ans += func(n - 1, i, prev)
12
ans = ans % mod
13
elif pp == -1:
14
if math.gcd(i, prev) == 1 and i != prev:
15
ans += func(n - 1, i, prev)
16
ans = ans % mod
17
else:
18
if math.gcd(i, prev) == 1 and i != prev and i != pp:
19
ans += func(n - 1, i, prev)
20
ans = ans % mod
21
return ans
22

23

24
class Solution:
25

26
def distinctSequences(self, n: int) -> int:
27
return func(n, -1, -1)

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0