// THIS DOES NOT WORK
func solutionTab(_ s: [Character], _ t: [Character], _ n: Int, _ m: Int, _ dp: inout [[Int]]) -> Int {
for i in 0 ... n {dp[i][0] = 1}
for j in 1 ... m {dp[0][j] = 0}
for i in 1 ... n {
for j in 1 ... m {
if s[i-1] == t[j-1] {
dp[i][j] = dp[i-1][j-1] + dp[i-1][j]
}else {
dp[i][j] = dp[i-1][j]
}
}
}
return dp[n][m]
}
while solving distinct subsequence problem based on dp my tabulation approach using java works well and run all the test cases but my swift code does not.
// THIS WORKS
public static int solutionTab(String s, String t, int n, int m, int[][] dp) {
for(int i = 0; i <= n; i++) dp[i][0] = 1;
for(int j = 1; j <= m; j++) dp[0][j] = 0;
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= m; j++) {
if(s.charAt(i-1) == t.charAt(j-1)){
dp[i][j] = dp[i-1][j-1] + dp[i-1][j];
}
else{
dp[i][j] = dp[i-1][j];
}
}
}
return dp[n][m];
}
swift code crashes for test case :
s = “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”
t =
“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”
RUNTIME ERROR :
*** Program crashed: Illegal instruction at 0x0000559056296d8f ***
Thread 0 “prog” crashed:
0 0x0000559056296d8f specialized Solution.solutionTab(::::_:) + 863 in prog
Registers:
rax 0x00000000000003e9 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 ················
rdx 0x000000000000001d 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 07 ················
rcx 0x000055905690fb40 b8 de b3 93 2c 7f 00 00 03 00 00 00 00 00 00 00 ¸Þ³·,···········
rbx 0x00000000000003e9 b8 b8 b8 b8 b8 b8 b8 b8 b8 b8 b8 b8 b8 b8 b8 b8 ¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸¸
rsi 0x0000559056911ab0 b8 de b3 93 2c 7f 00 00 03 00 00 00 00 00 00 00 ¸Þ³·,···········
rdi 0x0000559056884390 18 69 c4 93 2c 7f 00 00 03 00 00 00 00 00 00 00 ·iÄ·,···········
rbp 0x8aa282cfbbd45410 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 ················
rsp 0x00007ffe2b029750 e7 03 00 00 00 00 00 00 90 43 88 56 90 55 00 00 ç········C·V·U··
r8 0x0000000000000000 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 çççççççççççççççç
r9 0x1effffffffffffff e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 çççççççççççççççç
r10 0x0000000000000077 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 e7 çççççççççççççççç
r11 0x00007f2c928f2ce0 d0 ad 03 57 90 55 00 00 f0 cc 87 56 90 55 00 00 зW·U··ðÌ·V·U··
r12 0x0000559056911ab0 b8 de b3 93 2c 7f 00 00 03 00 00 00 00 00 00 00 ¸Þ³·,···········
r13 0x000055905688a3a8 00 00 00 00 00 00 00 e1 61 00 00 00 00 00 00 00 ·······áa·······
r14 0x0000000000000043 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ················
r15 0x000000000000001e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ················
rip 0x0000559056296d8f 0f 0b 0f 0b 0f 0b 0f 0b 0f 0b 0f 0b 0f 0b 0f 0b ················
rflags 0x0000000000010a82 SF
cs 0x0033 fs 0x0000 gs 0x0000
Images (18 omitted):