- 论坛徽章:
- 7
|
回复 18# anna_bi
1: function catalan
normal:
- def cat n
- n < 2 ? 1 : (0...n).reduce(0) { |s, i| s + cat(i) * cat(n - 1 - i) }
- end
复制代码 cache:
- $deze = [1, 1]
- def cat n
- return $deze[n] if $deze[n]
- $deze[n] = (0...n).reduce(0) { |s, i| s + cat(i) * cat(n - 1 - i) }
- end
复制代码 2:
{'AU' => 1, 'UA' => 1, 'CG' => 1, 'GC' => 1, '' => 1}
ACGUAGCU (): 0, []: 1
01_3_5_7
'' x AC(GUAGCU) + A[CG]U x [AGCU] + A(CGUA)G x (CU) + A[CGUAGC]U x ''
AC => 0, AU => 1, AG => 0
0 + CG x AGCU + 0 + CGUAGC
count = 1 x X + Y
X: AGCU
'' x AG(CU) + A[GC]U x ''
X = 0 + 1 x 1 = 1
Y: CGUAGC
'' x CG[UAGC] + C(GU)A x [GC] + C(GUAG)C x ''
Y = UAGC + 0 + 0 = Z
Y = Z
Z: UAGC
'' x UA[GC] + U(AG)C x ''
Z = 1 x 1 + 0 = 1
count =
1 x X + Y =
1 x X + Z =
1 x 1 + 1 = 2
|
|