Cody

# Problem 95. Given two strings, find the maximum overlap

Solution 1023743

Submitted on 19 Oct 2016 by James Kristoff
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Pass
s1 = [1 2 3 4 5]; s2 = [5 4 3 2]; s3_correct = [1 2 3 4 5 4 3 2]; assert(isequal(overlap(s1,s2),s3_correct))

Start: 2 End: -3 Str: 5 4 3 2 2 3 4 5 Start: 3 End: -2 Str: 5 4 3 2 3 4 5 Start: 4 End: -1 Str: 5 4 3 2 4 5 Start: 5 End: 0 Str: 5 4 3 2 5 Start: 6 End: 1 Str: 1 5 4 3 2 Start: 7 End: 2 Str: 1 2 5 4 3 2 Start: 8 End: 3 Str: 1 2 3 5 4 3 2 Start: 9 End: 4 Str: 1 2 3 4 5 4 3 2

2   Pass
s1 = [1 0 1 7 7 7 6]; s2 = [1 0 1 0 1]; s3_correct = [1 0 1 0 1 7 7 7 6]; assert(isequal(overlap(s1,s2),s3_correct))

Start: 2 End: -4 Str: 1 0 1 0 1 0 1 7 7 7 6 Start: 3 End: -3 Str: 1 0 1 0 1 1 7 7 7 6 Start: 4 End: -2 Str: 1 0 1 0 1 7 7 7 6 Start: 5 End: -1 Str: 1 0 1 0 1 7 7 6 Start: 6 End: 0 Str: 1 0 1 0 1 7 6 Start: 7 End: 1 Str: 1 1 0 1 0 1 6 Start: 8 End: 2 Str: 1 0 1 0 1 0 1 Start: 9 End: 3 Str: 1 0 1 1 0 1 0 1 Start: 10 End: 4 Str: 1 0 1 7 1 0 1 0 1 Start: 11 End: 5 Str: 1 0 1 7 7 1 0 1 0 1 Start: 12 End: 6 Str: 1 0 1 7 7 7 1 0 1 0 1

3   Pass
s1 = [3 1 4 1 5 9 2 6 5 3 5]; s2 = [9 2 6 5]; s3_correct = [3 1 4 1 5 9 2 6 5 3 5]; assert(isequal(overlap(s1,s2),s3_correct))

Start: 2 End: -3 Str: 9 2 6 5 1 4 1 5 9 2 6 5 3 5 Start: 3 End: -2 Str: 9 2 6 5 4 1 5 9 2 6 5 3 5 Start: 4 End: -1 Str: 9 2 6 5 1 5 9 2 6 5 3 5 Start: 5 End: 0 Str: 9 2 6 5 5 9 2 6 5 3 5 Start: 6 End: 1 Str: 3 9 2 6 5 9 2 6 5 3 5 Start: 7 End: 2 Str: 3 1 9 2 6 5 2 6 5 3 5 Start: 8 End: 3 Str: 3 1 4 9 2 6 5 6 5 3 5 Start: 9 End: 4 Str: 3 1 4 1 9 2 6 5 5 3 5 Start: 10 End: 5 Str: 3 1 4 1 5 9 2 6 5 3 5 Start: 11 End: 6 Str: 3 1 4 1 5 9 9 2 6 5 5 Start: 12 End: 7 Str: 3 1 4 1 5 9 2 9 2 6 5 Start: 13 End: 8 Str: 3 1 4 1 5 9 2 6 9 2 6 5 Start: 14 End: 9 Str: 3 1 4 1 5 9 2 6 5 9 2 6 5 Start: 15 End: 10 Str: 3 1 4 1 5 9 2 6 5 3 9 2 6 5

4   Pass
s1 = 1:100; s2 = [50 51]; s3_correct = s1; assert(isequal(overlap(s1,s2),s3_correct))

Start: 2 End: -1 Str: 50 51 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 3 End: 0 Str: 50 51 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 4 End: 1 Str: 1 50 51 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 5 End: 2 Str: 1 2 50 51 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 6 End: 3 Str: 1 2 3 50 51 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 7 End: 4 Str: 1 2 3 4 50 51 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 8 End: 5 Str: 1 2 3 4 5 50 51 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 9 End: 6 Str: 1 2 3 4 5 6 50 51 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 10 End: 7 Str: 1 2 3 4 5 6 7 50 51 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 11 End: 8 Str: 1 2 3 4 5 6 7 8 50 51 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 12 End: 9 Str: 1 2 3 4 5 6 7 8 9 50 51 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 13 End: 10 Str: 1 2 3 4 5 6 7 8 9 10 50 51 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 14 End: 11 Str: 1 2 3 4 5 6 7 8 9 10 11 50 51 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 15 End: 12 Str: 1 2 3 4 5 6 7 8 9 10 11 12 50 51 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 16 End: 13 Str: 1 2 3 4 5 6 7 8 9 10 11 12 13 50 51 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 17 End: 14 Str: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 50 51 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 18 End: 15 Str: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 50 51 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 19 End: 16 Str: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 50 51 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 20 End: 17 Str: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 50 51 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 Start: 21 End: 18 Str: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 50 51 21 22 ...

5   Pass
s1 = 90:10:200; s2 = 10:10:120; s3_correct = 10:10:200; assert(isequal(overlap(s1,s2),s3_correct))

Start: 2 End: -11 Str: 90 100 110 120 130 140 150 160 170 180 190 200 20 30 40 50 60 70 80 90 100 110 120 Start: 3 End: -10 Str: 90 100 110 120 130 140 150 160 170 180 190 200 30 40 50 60 70 80 90 100 110 120 Start: 4 End: -9 Str: 90 100 110 120 130 140 150 160 170 180 190 200 40 50 60 70 80 90 100 110 120 Start: 5 End: -8 Str: 90 100 110 120 130 140 150 160 170 180 190 200 50 60 70 80 90 100 110 120 Start: 6 End: -7 Str: 90 100 110 120 130 140 150 160 170 180 190 200 60 70 80 90 100 110 120 Start: 7 End: -6 Str: 90 100 110 120 130 140 150 160 170 180 190 200 70 80 90 100 110 120 Start: 8 End: -5 Str: 90 100 110 120 130 140 150 160 170 180 190 200 80 90 100 110 120 Start: 9 End: -4 Str: 90 100 110 120 130 140 150 160 170 180 190 200 90 100 110 120 Start: 10 End: -3 Str: 90 100 110 120 130 140 150 160 170 180 190 200 100 110 120 Start: 11 End: -2 Str: 90 100 110 120 130 140 150 160 170 180 190 200 110 120 Start: 12 End: -1 Str: 90 100 110 120 130 140 150 160 170 180 190 200 120 Start: 13 End: 0 Str: 90 100 110 120 130 140 150 160 170 180 190 200 Start: 14 End: 1 Str: 10 90 100 110 120 130 140 150 160 170 180 190 200 Start: 15 End: 2 Str: 10 20 90 100 110 120 130 140 150 160 170 180 190 200 Start: 16 End: 3 Str: 10 20 30 90 100 110 120 130 140 150 160 170 180 190 200 Start: 17 End: 4 Str: 10 20 30 40 90 100 110 120 130 140 150 160 170 180 190 200 Start: 18 End: 5 Str: 10 20 30 40 50 90 100 110 120 130 140 150 160 170 180 190 200 Start: 19 End: 6 Str: 10 20 30 40 50 60 90 100 110 120 130 140 150 160 170 180 190 200 Start: 20 End: 7 Str: 10 20 30 40 50 60 70 90 100 110 120 130 140 150 160 170 180 190 200 Start: 21 End: 8 Str: 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 Start: 22 End: 9 Str: 10 20 30 40 50 60 70 80 90 90 100 110 120 130 140 150 160 170 180 190 200 Start: 23 End: 10 Str: 10 20 30 40 50 60 70 80 90 100 90 100 110 120 130 140 150 160 170 180 190 200 Start: 24 End: 11 Str: 10 20 30 40 50 60 70 80 90 100 110 90 100 110 120 130 140 150 160 170 180 190 200