Cody

Problem 59. Pattern matching

Solution 1801231

Submitted on 30 Apr 2019 by CHUANQIANG ZHANG
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(:)))

z = 4 8 temp = 0 1 1 0 -1 1 0 1 trend = 1 trend = 1 0 trend = 1 0 -1 trend = 1 0 -1 trend = 1 0 -1 -1 trend = 1 0 -1 -1 trend = 1 0 -1 -1 2 trend = 1 0 -1 -1 1 trend = 1 0 -1 -1 1 -1 trend = 1 0 -1 -1 1 -1 trend = 1 0 -1 -1 1 -1 1 temp = 0 1 1 0 -1 1 0 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 2 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 temp = 0 1 1 0 -1 1 0 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 2 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 temp = 0 1 0 0 -1 1 0 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 -1 -1 -1 1 -1 1 trend = 1 -1 -1 -1 1 -1 1 trend = 1 -1 0 -1 1 -1 1 trend = 1 -1 0 -1 1 -1 1 trend = 1 -1 0 -1 1 -1 1 trend = 1 -1 0 -1 2 -1 1 trend = 1 -1 0 -1 1 -1 1 trend = 1 -1 0 -1 1 -1 1 trend = 1 -1 0 -1 1 -1 1 trend = 1 -1 0 -1 1 -1 1 temp = 1 2 2 1 0 2 1 2 trend = 1 -1 0 -1 1 -1 1 trend = 1 0 0 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 2 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 trend = 1 0 -1 -1 1 -1 1 result1 = 4×7 logical array 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 result2 = 7 7 5 7 result3 = 1 2 4 result4 = 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(:)))

z = 4 8 temp = 0 1 2 3 4 5 6 7 trend = 1 trend = 1 1 trend = 1 1 1 trend = 1 1 1 1 trend = 1 1 1 1 1 trend = 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 temp = 0 1 2 3 4 5 6 7 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 temp = 1 2 3 4 5 6 7 8 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 temp = 0 2 3 4 5 7 8 0 trend = 2 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 2 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 -8 trend = 1 1 1 1 1 1 -1 temp = 0 0 2 3 4 5 6 7 trend = 0 1 1 1 1 1 -1 trend = 0 2 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 1 result1 = 4×7 logical array 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 result2 = 7 7 6 6 result3 = 1 2 result4 = 2

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(:)))

z = 4 8 temp = 0 0 2 3 4 5 6 7 trend = 0 trend = 0 2 trend = 0 1 trend = 0 1 1 trend = 0 1 1 1 trend = 0 1 1 1 1 trend = 0 1 1 1 1 1 trend = 0 1 1 1 1 1 1 temp = 0 0 2 3 4 5 6 7 trend = 0 1 1 1 1 1 1 trend = 0 2 1 1 1 1 1 trend = 0 1 1 1 1 1 1 trend = 0 1 1 1 1 1 1 trend = 0 1 1 1 1 1 1 trend = 0 1 1 1 1 1 1 trend = 0 1 1 1 1 1 1 trend = 0 1 1 1 1 1 1 temp = 1 2 3 4 5 6 7 8 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 temp = 0 2 3 4 5 7 8 0 trend = 2 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 2 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 -8 trend = 1 1 1 1 1 1 -1 temp = 0 0 2 3 4 5 6 7 trend = 0 1 1 1 1 1 -1 trend = 0 2 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 1 result1 = 4×7 logical array 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 result2 = 7 6 5 7 result3 = 1 4 result4 = 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(:)))

z = 4 8 temp = 0 0 2 3 4 5 6 7 trend = 0 trend = 0 2 trend = 0 1 trend = 0 1 1 trend = 0 1 1 1 trend = 0 1 1 1 1 trend = 0 1 1 1 1 1 trend = 0 1 1 1 1 1 1 temp = 0 0 2 3 4 5 6 7 trend = 0 1 1 1 1 1 1 trend = 0 2 1 1 1 1 1 trend = 0 1 1 1 1 1 1 trend = 0 1 1 1 1 1 1 trend = 0 1 1 1 1 1 1 trend = 0 1 1 1 1 1 1 trend = 0 1 1 1 1 1 1 trend = 0 1 1 1 1 1 1 temp = 1 2 3 4 5 6 7 8 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 temp = 0 2 3 4 5 7 8 0 trend = 2 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 2 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 1 trend = 1 1 1 1 1 1 -8 trend = 1 1 1 1 1 1 -1 temp = 0 0 12 13 140 150 160 1700 trend = 0 1 1 1 1 1 -1 trend = 0 12 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 127 1 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 10 1 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 10 -1 trend = 0 1 1 1 1 1 -1 trend = 0 1 1 1 1 1 1540 trend = 0 1 1 1 1 1 1 result1 = 4×7 logical array 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 result2 = 7 6 5 7 result3 = 1 4 result4 = 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(:)))

z = 7 4 temp = 0 1 1 0 trend = 1 trend = 1 0 trend = 1 0 -1 trend = 1 0 -1 temp = 0 1 1 0 trend = 1 0 -1 trend = 1 0 -1 trend = 1 0 -1 trend = 1 0 -1 temp = 1 2 3 4 trend = 1 0 -1 trend = 1 1 -1 trend = 1 1 1 temp = 1 5 5 3 trend = 4 1 1 trend = 1 1 1 trend = 1 0 1 trend = 1 0 -2 trend = 1 0 -1 temp = 2 3 4 5 trend = 1 0 -1 trend = 1 1 -1 trend = 1 1 1 temp = 6 7 7 9 trend = 1 1 1 trend = 1 0 1 trend = 1 0 2 trend = 1 0 1 temp = -4 -1 -1 -12 trend = 3 0 1 trend = 1 0 1 trend = 1 0 1 trend = 1 0 -11 trend = 1 0 -1 temp = 5 6 9 10 trend = 1 0 -1 trend = 1 3 -1 trend = 1 1 -1 trend = 1 1 1 result1 = 7×3 logical array 1 1 1 1 0 0 1 1 1 1 0 0 1 1 0 1 1 1 1 0 0 result2 = 3 1 3 1 2 3 1 result3 = 1 3 6 result4 = 3 6

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!