Balanced brackets: Difference between revisions

Replaced PowerShell with simpler example
No edit summary
(Replaced PowerShell with simpler example)
Line 4,018:
 
=={{header|PowerShell}}==
{{works with|PowerShell|2}}
<lang PowerShell>
function balancedGet-bracketsBalanceStatus {( $String )
param({
$Open = 0
[String][ValidatePattern('^[\(\)]*$|^[\[\]]*$|^[<>]*$|^[{}]*$')]$string
ForEach ( $Character in [char[]]$String )
)
if($string) {
$arrayswitch =( $string.ToCharArray().ForEach([String]Character )
$close, $continue = ')]>}', $true{
$i, $left, $right = 0,"[" 0, 0 { $Open++ }
while (($i -lt $array.count) -and"]" $continue) { $Open-- }
ifdefault { ($close.contains($array[$i]))Open {= -1 }
$right += 1}
# If Open drops below zero (close $continuebefore =open $rightor non-leallowed $leftcharacter)
# }Exit else {$left += 1}loop
If ( $Open -lt $i0 ) { +=Break 1}
}
$Status = ( "NOT ifOK", "OK" ($continue) {[( $leftOpen -eq $right}0 )]
return else {$false}Status
} else {$true}
}
 
"Empty: $(balanced-brackets '')"
"[]: $(balanced-brackets '[]')"
"][: $(balanced-brackets '][')"
"[][]: $(balanced-brackets '[][]')"
"][][: $(balanced-brackets '][][')"
"[[][]]: $(balanced-brackets '[[][]]')"
"[]][[]: $(balanced-brackets '[]][[]')"
</lang>
<lang PowerShell>
<b>Output:</b>
# Test
$Strings = @( "" )
$Strings += 1..5 | ForEach { ( [char[]]("[]" * $_) | Get-Random -Count ( $_ * 2 ) ) -join "" }
ForEach ( $String in $Strings )
){
$String.PadRight( 12, " " ) + (Get-BalanceStatus $String)
}
</lang>
{{out}}
<pre>
OK
Empty: True
[] OK
[]: True
]][[ NOT OK
][: False
]][][[ NOT OK
[][]: True
][[[][:]]] FalseOK
][[[]][][]: True NOT OK
[]][[]: False
</pre>