2016 Update

This commit is contained in:
Tina Müller 2016-12-05 22:15:40 +01:00
parent 948b86eafa
commit dcf5d15da3
7965 changed files with 139854 additions and 31002 deletions

View file

@ -1,23 +1,20 @@
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}"
brackets = generate(n)
result = is_balanced(brackets) |> task_balanced
IO.puts "#{brackets} is #{result}"
end)
end
def generate( 0 ), do: []
def generate( n ) do
for _ <- 1..2*n, do: generate_bracket(:rand.uniform(2))
defp generate( 0 ), do: []
defp generate( n ) do
for _ <- 1..2*n, do: Enum.random ["[", "]"]
end
defp generate_bracket( 1 ), do: "["
defp generate_bracket( 2 ), do: "]"
def is_balanced( brackets ), do: is_balanced_loop( brackets, 0 )
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( _, 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 )