Another update from ingydotnet^djgoku
This commit is contained in:
parent
91df62d461
commit
948b86eafa
7604 changed files with 108452 additions and 22726 deletions
30
Task/Balanced-brackets/Elixir/balanced-brackets.elixir
Normal file
30
Task/Balanced-brackets/Elixir/balanced-brackets.elixir
Normal 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue