Balanced brackets: Difference between revisions
Content added Content deleted
(GDScript) |
|||
Line 3,529: | Line 3,529: | ||
Balanced("[[[]][]]]"); |
Balanced("[[[]][]]]"); |
||
# false</syntaxhighlight> |
# false</syntaxhighlight> |
||
=={{header|GDScript}}== |
|||
{{works with|Godot|4.0}} |
|||
<syntaxhighlight lang="gdscript"> |
|||
extends MainLoop |
|||
func generate_brackets(n: int) -> String: |
|||
var brackets: Array[String] = [] |
|||
# Add opening and closing brackets |
|||
brackets.resize(2*n) |
|||
for i in range(0, 2*n, 2): |
|||
brackets[i] = "[" |
|||
brackets[i+1] = "]" |
|||
brackets.shuffle() |
|||
return "".join(brackets) |
|||
func is_balanced(str: String) -> bool: |
|||
var unclosed_brackets := 0 |
|||
for c in str: |
|||
match c: |
|||
"[": |
|||
unclosed_brackets += 1 |
|||
"]": |
|||
if unclosed_brackets == 0: |
|||
return false |
|||
unclosed_brackets -= 1 |
|||
_: |
|||
return false |
|||
return unclosed_brackets == 0 |
|||
func _process(_delta: float) -> bool: |
|||
randomize() |
|||
for i in range(6): |
|||
var bracket_string := generate_brackets(i) |
|||
if is_balanced(bracket_string): |
|||
print("%sOK" % bracket_string.rpad(13)) |
|||
else: |
|||
print("%sNOT OK" % bracket_string.rpad(11)) |
|||
return true # Exit |
|||
</syntaxhighlight> |
|||
=={{header|Go}}== |
=={{header|Go}}== |