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