Balanced brackets: Difference between revisions

Content added Content deleted
(add UNIX Shell)
No edit summary
Line 4,558: Line 4,558:
[[][]] OK
[[][]] OK
</pre>
</pre>


=={{header|Ya}}==
<lang Ya>
@Balanced[]s

;Use @Std/StdIO

;`No Shuffle `Char[] brackets
;For; ++brackets
;`Int+ at = Random brackets/Length
;brackets[-1], brackets[at] = brackets[at], brackets[-1]
;`Char[=] MakeNew `Int+ len
;len & 1 ==0 ! // len must be even
;`Char[=] r(len)
;For `Char[] eye = r; eye; ++eye
;*eye = '['
;*++eye = '['
;Shuffle r
;Return r
;Bool AreBalanced `Char[] brackets
;`Int+ extra = 0;
;For; brackets; ++brackets
;Switch *brackets
'['
;++extra
']'
;If !!extra
;Return False
;--extra
;Return !!extra
`Int Main(`Char[][])
;For `Int n=10; n; --n
;`Char[=] brackets = MakeNew 10
;Print ;"%s : %s\n" ;`Char[=] brackets = MakeNew 10 ;(AreBalanced brackets) ? "Ok" : "bad"
;Return 0
</lang>


=={{header|zkl}}==
=={{header|zkl}}==