Another update from ingydotnet^djgoku

This commit is contained in:
Ingy döt Net 2015-11-18 06:14:39 +00:00
parent 91df62d461
commit 948b86eafa
7604 changed files with 108452 additions and 22726 deletions

View file

@ -0,0 +1,30 @@
defmodule Balanced_brackets do
def task do
Enum.each(0..5, fn n ->
string = generate(n)
result = is_balanced(string) |> task_balanced
IO.puts "#{string} is #{result}"
end)
end
def generate( 0 ), do: []
def generate( n ) do
for _ <- 1..2*n, do: generate_bracket(:rand.uniform(2))
end
defp generate_bracket( 1 ), do: "["
defp generate_bracket( 2 ), do: "]"
def is_balanced( string ), do: is_balanced_loop( string, 0 )
defp is_balanced_loop( _string, n ) when n < 0, do: false
defp is_balanced_loop( [], 0 ), do: true
defp is_balanced_loop( [], _n ), do: false
defp is_balanced_loop( ["[" | t], n ), do: is_balanced_loop( t, n + 1 )
defp is_balanced_loop( ["]" | t], n ), do: is_balanced_loop( t, n - 1 )
defp task_balanced( true ), do: "OK"
defp task_balanced( false ), do: "NOT OK"
end
Balanced_brackets.task