@@ -14,7 +14,13 @@ looper = lambda initial: any, elements: [any], func: (any, any) -> any -> any {
14
14
_looper_n(elements, 0, func, initial)
15
15
}
16
16
17
- looper_enumerate = lambda initial: any, elements: [any] | {str:}, func: (any, str | int, any) -> any -> any {
17
+ looper_enumerate1 = lambda initial: any, elements: [any] | {str:}, func: (any, str | int, any) -> any -> any {
18
+ looper(initial, [{"k" = k, "v" = v} for k, v in elements], lambda initial, value {
19
+ func(initial, value.k, value.v)
20
+ })
21
+ }
22
+
23
+ looper_enumerate2 = lambda initial: any, elements: [any] | {str:}, func: (any, str | int, any) -> any -> any {
18
24
looper(initial, [{"k" = k, "v" = v} for k, v in elements], lambda initial, value {
19
25
func(initial, value.k, value.v)
20
26
})
@@ -40,8 +46,8 @@ longest_common_subsequence = lambda a: [], b: [] -> [] {
40
46
"""Longest Common Subsequence (LCS) is a typical algorithm for calculating the length of the longest common subsequence between two sequences."""
41
47
# Build the lengths matrix for dp
42
48
lengths = [[0] * (len(b) + 1) for _ in range(len(a) + 1)]
43
- lengths = looper_enumerate (lengths, a, lambda m, i, x {
44
- looper_enumerate (m, b, lambda v, j, y {
49
+ lengths = looper_enumerate1 (lengths, a, lambda m, i, x {
50
+ looper_enumerate2 (m, b, lambda v, j, y {
45
51
list_set_index(v, i + 1, list_set_index(v[i + 1], j + 1, v[i][j] + 1 if x == y else max(v[i + 1][j], v[i][j + 1])))
46
52
})
47
53
})
0 commit comments