Cody

Problem 2653. Beauty of Parentheses

Solution 2217382

Submitted on 17 Apr 2020
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
str = '(()(()(()(()))))'; out = {'( )'; ' ()( ) '; ' ()( ) '; ' ()( ) '; ' () '} assert(isequal(braces(str),out))

out = 5×1 cell array {'( )'} {' ()( ) '} {' ()( ) '} {' ()( ) '} {' () '} str = '))))' part = 40 32 32 32 32 32 32 32 32 32 32 32 32 40 41 40 32 32 32 32 32 32 32 32 32 32 32 32 40 41 40 32 32 32 32 32 32 32 32 32 32 32 32 40 41 40 32 32 32 32 32 32 32 32 32 32 32 32 40 41 part1 = 32 32 32 41 32 32 41 32 32 41 32 32 41 32 32 32 32 32 32 32 sout = 5×16 char array '( )' ' ()( ) ' ' ()( ) ' ' ()( ) ' ' () ' out = 5×1 cell array {'( )'} {' ()( ) '} {' ()( ) '} {' ()( ) '} {' () '}

2   Pass
str = '()'; % trivial test out = {'()'}; assert(isequal(braces(str),out))

out = 1×1 cell array {'()'}

3   Pass
str = '((((()))))'; out = {'( )'; ' ( ) '; ' ( ) '; ' ( ) '; ' () '} assert(isequal(braces(str),out))

out = 5×1 cell array {'( )'} {' ( ) '} {' ( ) '} {' ( ) '} {' () '} str = '))))' part = 40 32 32 32 32 32 32 40 32 32 32 32 32 32 40 32 32 32 32 32 32 40 32 32 32 32 32 32 40 41 part1 = 32 32 32 41 32 32 41 32 32 41 32 32 41 32 32 32 32 32 32 32 sout = 5×10 char array '( )' ' ( ) ' ' ( ) ' ' ( ) ' ' () ' out = 5×1 cell array {'( )'} {' ( ) '} {' ( ) '} {' ( ) '} {' () '}

4   Fail
a = randi(10); str = ''; for i = 1:a str = [str '()']; end out = {str}; assert(isequal(braces(str),out))

str = ')()()()()()()()' part = 40 41 40 part1 = 32 32 32 32 32 32 32 32 32 32 32 40 41 32 32 32 32 32 32 32 32 32 40 41 32 32 32 32 32 32 32 32 32 40 41 32 32 32 32 32 32 32 32 32 40 41 32 32 32 32 32 32 32 32 32 40 41 32 32 32 32 32 32 32 32 41 40 41 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32

Error using horzcat Dimensions of arrays being concatenated are not consistent. Error in braces (line 117) sout =char([part part1]) Error in Test4 (line 7) assert(isequal(braces(str),out))

5   Pass
str = '()(((())))()'; out = {'()( )()'; ' ( ) '; ' ( ) '; ' () '} assert(isequal(braces(str),out))

out = 4×1 cell array {'()( )()'} {' ( ) '} {' ( ) '} {' () '} str = ')))()' part = 40 41 40 32 32 32 32 32 32 32 40 32 32 32 32 32 32 32 40 32 32 32 32 32 32 32 40 41 part1 = 32 32 41 40 41 32 41 32 32 32 41 32 32 32 32 32 32 32 32 32 sout = 4×12 char array '()( )()' ' ( ) ' ' ( ) ' ' () ' out = 4×1 cell array {'()( )()'} {' ( ) '} {' ( ) '} {' () '}

6   Pass
a = randi(10); str = ''; for i = 1:a str = ['(' str ')']; end out = {}; for i = 1:a s = [32*ones(1,i-1) '(' 32*ones(1,2*a-2*i) ')' 32*ones(1,i-1)]; out = [out; s]; end assert(isequal(braces(str),out))

str = '))))))))' part = 40 32 32 32 32 32 32 32 32 32 32 40 32 32 32 32 32 32 32 32 32 32 40 32 32 32 32 32 32 32 32 32 32 40 32 32 32 32 32 32 32 32 32 32 40 32 32 32 32 32 32 32 32 32 32 40 32 32 32 32 32 32 32 32 32 32 40 32 32 32 32 32 32 32 32 32 32 40 32 32 32 32 32 32 32 32 32 32 40 41 part1 = 32 32 32 32 32 32 32 41 32 32 32 32 32 32 41 32 32 32 32 32 32 41 32 32 32 32 32 32 41 32 32 32 32 32 32 41 32 32 32 32 32 32 41 32 32 32 32 32 32 41 32 32 32 32 32 32 41 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 sout = 9×18 char array '( )' ' ( ) ' ' ( ) ' ' ( ) ' ' ( ) ' ' ( ) ' ' ( ) ' ' ( ) ' ' () ' out = 9×1 cell array {'( )'} {' ( ) '} {' ( ) '} {' ( ) '} {' ( ) '} {' ( ) '} {' ( ) '} {' ( ) '} {' () '}