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}}== |