Skip to content

Instantly share code, notes, and snippets.

@sofakingworld
Last active August 25, 2016 09:11
Show Gist options
  • Save sofakingworld/f2619107d252580f5bd791f6143af9b6 to your computer and use it in GitHub Desktop.
Save sofakingworld/f2619107d252580f5bd791f6143af9b6 to your computer and use it in GitHub Desktop.
Bracket balance function
def brackets_balanced?(s)
brackets = [['(',')'],['[',']'],['{','}']]
flatten_brackets = brackets.flatten
close_brackets = brackets.map{|e| e[1]}
stack = ''
for i in 0..s.size do
stack += s[i] if flatten_brackets.include?(s[i])
stack = stack[0,stack.size-2] if brackets.include? [stack[stack.size-2,1],stack[stack.size-1,1]]
return false if close_brackets.include? stack[stack.size-1,1]
end
stack.empty?
end
#TEST
puts brackets_balanced?('()(){}[]'*100000)
puts brackets_balanced?('(())'*100000)
puts brackets_balanced?(')')
puts brackets_balanced?('([]){}('*100000)
#etc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment