Speed Me Up Scotty
Before:
def my_func2_inner(x, y, a, b):
if a == 0 or b == 0:
return 0, ""
if x[a - 1] == y[b - 1]:
m, n = my_func2_inner(x, y, a - 1, b - 1)
return m + 1, n + x[a - 1]
return max(my_func2_inner(x, y, a, b - 1), my_func2_inner(x, y, a - 1, b))
After:
from functools import lru_cache
@lru_cache
def my_func2_inner(x, y, a, b):
if a == 0 or b == 0:
return 0, ""
if x[a - 1] == y[b - 1]:
m, n = my_func2_inner(x, y, a - 1, b - 1)
return m + 1, n + x[a - 1]
return max(my_func2_inner(x, y, a, b - 1), my_func2_inner(x, y, a - 1, b))
Last updated
Was this helpful?