Jump to content

Balanced brackets: Difference between revisions

Line 5,956:
NOT balanced : [[]]]][][]]
balanced : x[ y [ [] z ]][ 1 ][]abcd
</pre>
=={{header|Simula}}==
<lang simula>BEGIN
INTEGER U;
U := ININT;
BEGIN
 
TEXT PROCEDURE GENERATE(N); INTEGER N;
BEGIN
INTEGER R;
TEXT T;
T :- NOTEXT;
WHILE N > 0 DO BEGIN
R := RANDINT(1,2,U);
T :- T & (IF R = 1 THEN "[" ELSE "]");
N := N - 1;
END;
GENERATE :- T;
END GENERATE;
 
BOOLEAN PROCEDURE BALANCED(T); TEXT T;
BEGIN
INTEGER LEVEL;
CHARACTER BRACE;
BOOLEAN DONE;
T.SETPOS(1);
WHILE T.MORE AND NOT DONE DO BEGIN
BRACE := T.GETCHAR;
IF BRACE = '[' THEN LEVEL := LEVEL + 1;
IF BRACE = ']' THEN LEVEL := LEVEL - 1;
IF LEVEL < 0 THEN DONE := TRUE;
END;
BALANCED := LEVEL = 0;
END BALANCED;
 
INTEGER I,M;
TEXT T;
FOR I := 1 STEP 1 UNTIL 40 DO BEGIN
M := RANDINT(0,10,U);
T :- GENERATE(M);
IF BALANCED(T) THEN OUTTEXT(" ") ELSE OUTTEXT(" NOT");
OUTTEXT(" BALANCED: ");
OUTTEXT(T);
OUTIMAGE;
END;
 
END;
END</lang>
{{in}}
<pre>710</pre>
{{out}}
<pre>
NOT BALANCED: [[[[[[][
NOT BALANCED: [[[[]
NOT BALANCED: ][
NOT BALANCED: [][[[[
BALANCED: [][[]]
NOT BALANCED: [[]
NOT BALANCED: ][
NOT BALANCED: ]][[]
NOT BALANCED: []]]
NOT BALANCED: ][]][[]
NOT BALANCED: ]]][
NOT BALANCED: ]][
NOT BALANCED: ][]]]]][]
NOT BALANCED: [[][[[]][[
NOT BALANCED: ]][]][]]
BALANCED:
NOT BALANCED: ][[
NOT BALANCED: []]][[]
NOT BALANCED: ]]]][[]]][
NOT BALANCED: ]]
BALANCED: [[][[[]]]]
NOT BALANCED: ][][]]
BALANCED:
NOT BALANCED: [[[[[]][[]
NOT BALANCED: []][[[][
NOT BALANCED: []]]][][]
NOT BALANCED: ][]][][
NOT BALANCED: []]
NOT BALANCED: ]]][[
NOT BALANCED: [
BALANCED: []
NOT BALANCED: ][]]]
NOT BALANCED: [[[[[[]][
NOT BALANCED: [][[][
NOT BALANCED: ]]
NOT BALANCED: ]][
NOT BALANCED: [[[[[[
NOT BALANCED: ]]]]]
NOT BALANCED: ]][[]
NOT BALANCED: ][][][][
</pre>
 
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.