Balanced brackets: Difference between revisions

m (changed Version headers)
Line 3,124:
\z/x # end of string
 
(010..9).eachtimes do |i|
s = "(%w{[ ]"} * i).shuffle.join
puts( (s =~ re ? " OK: " : "bad: ") + s)
 
# There is no String#shuffle! method.
# This is a Knuth shuffle.
(s.length - 1).downto(1) do |a; b|
b = rand(a + 1)
s[a], s[b] = s[b], s[a]
end
 
puts((s =~ re ? " OK: " : "bad: ") + s)
end
 
["[[]", "[]]", "a[ letters[-1] ].xyz[0]"].each do |s|
t = s.gsub(/[^\[\]]/, "")
puts ((st =~ re ? " OK: " : "bad: ") + s)
end</lang>
 
One output: <pre> OK:
OK:
OK: []
bad: ][]][
bad OK: ][][][]]
bad: []]][[[][[
bad: ][]][][][[]]
bad: ][[][]][[]][[[]
bad: ]][[][[[]]][][[]][
OK: [][[][][[]][]]][]]
OKbad: []][[[][]]][[][]][[][]]]
bad: [[]
bad: []]
bad OK: a[ letters[-1] ].xyz[0]</pre>
</pre>
 
=={{header|Run BASIC}}==
Anonymous user