Cody

Problem 59. Pattern matching

Solution 2138235

Submitted on 23 Feb 2020 by Zunaed Kibria
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
a = [0 1 1 0 -1 1 0 1 0 1 1 0 -1 1 0 1 0 1 0 0 -1 1 0 1 1 2 2 1 0 2 1 2]; b = [2 4]; out = matchPattern(a); assert(isequal(out(:), b(:)))

out = [] first = 1 0 -1 -1 2 -1 1 firstpatternpos = 1.0000 5.0000 7.0000 0.1000 firstpatternzero = 2.0000 0.1000 firstpatternneg = 3.0000 4.0000 6.0000 0.1000 patmatrix = 1.0000 5.0000 7.0000 0.1000 2.0000 0.1000 3.0000 4.0000 6.0000 0.1000 rest = 1 0 -1 -1 2 -1 1 restpos = 1.0000 5.0000 7.0000 0.1000 restzero = 2.0000 0.1000 restneg = 3.0000 4.0000 6.0000 0.1000 restmatrix = 1.0000 5.0000 7.0000 0.1000 2.0000 0.1000 3.0000 4.0000 6.0000 0.1000 out = 2 rest = 1 -1 0 -1 2 -1 1 restpos = 1.0000 5.0000 7.0000 0.1000 restzero = 3.0000 0.1000 restneg = 2.0000 4.0000 6.0000 0.1000 restmatrix = 1.0000 5.0000 7.0000 0.1000 3.0000 0.1000 2.0000 4.0000 6.0000 0.1000 rest = 1 0 -1 -1 2 -1 1 restpos = 1.0000 5.0000 7.0000 0.1000 restzero = 2.0000 0.1000 restneg = 3.0000 4.0000 6.0000 0.1000 restmatrix = 1.0000 5.0000 7.0000 0.1000 2.0000 0.1000 3.0000 4.0000 6.0000 0.1000 out = 2 4

2   Pass
a = [0 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8 0 2 3 4 5 7 8 0 0 0 2 3 4 5 6 7]; b = [2]; out = matchPattern(a); assert(isequal(out(:), b(:)))

out = [] first = 1 1 1 1 1 1 1 firstpatternpos = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 firstpatternzero = 0.1000 firstpatternneg = 0.1000 patmatrix = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 0.1000 0.1000 rest = 1 1 1 1 1 1 1 restpos = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 restzero = 0.1000 restneg = 0.1000 restmatrix = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 0.1000 0.1000 out = 2 rest = 2 1 1 1 2 1 -8 restpos = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 0.1000 restzero = 0.1000 restneg = 7.0000 0.1000 restmatrix = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 0.1000 0.1000 7.0000 0.1000 rest = 0 2 1 1 1 1 1 restpos = 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 restzero = 1.0000 0.1000 restneg = 0.1000 restmatrix = 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 1.0000 0.1000 0.1000

3   Pass
a = [0 0 2 3 4 5 6 7 1 2 3 4 5 6 7 8 0 2 3 4 5 7 8 0 0 0 2 3 4 5 6 7]; b = [4]; out = matchPattern(a); assert(isequal(out(:), b(:)))

out = [] first = 0 2 1 1 1 1 1 firstpatternpos = 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 firstpatternzero = 1.0000 0.1000 firstpatternneg = 0.1000 patmatrix = 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 1.0000 0.1000 0.1000 rest = 1 1 1 1 1 1 1 restpos = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 restzero = 0.1000 restneg = 0.1000 restmatrix = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 0.1000 0.1000 rest = 2 1 1 1 2 1 -8 restpos = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 0.1000 restzero = 0.1000 restneg = 7.0000 0.1000 restmatrix = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 0.1000 0.1000 7.0000 0.1000 rest = 0 2 1 1 1 1 1 restpos = 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 restzero = 1.0000 0.1000 restneg = 0.1000 restmatrix = 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 1.0000 0.1000 0.1000 out = 4

4   Pass
a = [0 0 2 3 4 5 6 7 1 2 3 4 5 6 7 8 0 2 3 4 5 7 8 0 0 0 12 13 140 150 160 1700]; b = [4]; out = matchPattern(a); assert(isequal(out(:), b(:)))

out = [] first = 0 2 1 1 1 1 1 firstpatternpos = 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 firstpatternzero = 1.0000 0.1000 firstpatternneg = 0.1000 patmatrix = 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 1.0000 0.1000 0.1000 rest = 1 1 1 1 1 1 1 restpos = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 restzero = 0.1000 restneg = 0.1000 restmatrix = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 0.1000 0.1000 rest = 2 1 1 1 2 1 -8 restpos = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 0.1000 restzero = 0.1000 restneg = 7.0000 0.1000 restmatrix = 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 0.1000 0.1000 7.0000 0.1000 rest = 0 12 1 127 10 10 1540 restpos = 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 restzero = 1.0000 0.1000 restneg = 0.1000 restmatrix = 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 0.1000 1.0000 0.1000 0.1000 out = 4

5   Pass
a = [0 1 1 0 1 2 3 4 1 5 5 3 2 3 4 5 6 7 7 9 -4 -1 -1 -12 5 6 9 10]; b = [3 6]; out = matchPattern(a); assert(isequal(out(:), b(:)))

out = [] first = 1 0 -1 firstpatternpos = 1.0000 0.1000 firstpatternzero = 2.0000 0.1000 firstpatternneg = 3.0000 0.1000 patmatrix = 1.0000 0.1000 2.0000 0.1000 3.0000 0.1000 rest = 1 1 1 restpos = 1.0000 2.0000 3.0000 0.1000 restzero = 0.1000 restneg = 0.1000 restmatrix = 1.0000 2.0000 3.0000 0.1000 0.1000 0.1000 rest = 4 0 -2 restpos = 1.0000 0.1000 restzero = 2.0000 0.1000 restneg = 3.0000 0.1000 restmatrix = 1.0000 0.1000 2.0000 0.1000 3.0000 0.1000 out = 3 rest = 1 1 1 restpos = 1.0000 2.0000 3.0000 0.1000 restzero = 0.1000 restneg = 0.1000 restmatrix = 1.0000 2.0000 3.0000 0.1000 0.1000 0.1000 rest = 1 0 2 restpos = 1.0000 3.0000 0.1000 restzero = 2.0000 0.1000 restneg = 0.1000 restmatrix = 1.0000 3.0000 0.1000 2.0000 0.1000 0.1000 rest = 3 0 -11 restpos = 1.0000 0.1000 restzero = 2.0000 0.1000 restneg = 3.0000 0.1000 restmatrix = 1.0000 0.1000 2.0000 0.1000 3.0000 0.1000 out = 3 6 rest = 1 3 1 restpos = 1.0000 2.0000 3.0000 0.1000 restzero = 0.1000 restneg = 0.1000 restmatrix = 1.0000 2.0000 3.0000 0.1000 0.1000 0.1000

Suggested Problems

More from this Author95

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!