Compare commits
2 Commits
ba73d0040f
...
0407e44ea7
Author | SHA1 | Date |
---|---|---|
Nathan Mattes | 0407e44ea7 | |
Nathan Mattes | 2eef0ae2d6 |
|
@ -5,29 +5,42 @@ defmodule StringsAndBinaries do
|
||||||
|
|
||||||
def custom_ascii_printable?(char_list) do
|
def custom_ascii_printable?(char_list) do
|
||||||
# every character in char list must between 32 and 126
|
# every character in char list must between 32 and 126
|
||||||
Enum.all?(char_list, &( 32 <= &1 and &1 <= 126))
|
Enum.all?(char_list, &(32 <= &1 and &1 <= 126))
|
||||||
end
|
end
|
||||||
|
|
||||||
def anagram?(word1, word2) do
|
def anagram?(word1, word2) do
|
||||||
# An anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.
|
# An anagram is a word or phrase formed by rearranging the letters of a different word or phrase, typically using all the original letters exactly once.
|
||||||
Enum.sort(String.to_charlist(word1)) == Enum.sort(String.to_charlist(word2))
|
Enum.sort(String.to_charlist(word1)) == Enum.sort(String.to_charlist(word2))
|
||||||
end
|
end
|
||||||
|
|
||||||
def calculate(expression) do
|
def calculate(expression) do
|
||||||
# this might be a bit dirty, but it solves the issue.
|
# this might be a bit dirty, but it solves the issue.
|
||||||
[a, operator, b] = ~w[ #{expression} ]
|
[a, operator, b] = ~w[ #{expression} ]
|
||||||
a = String.to_integer(a)
|
a = String.to_integer(a)
|
||||||
b = String.to_integer(b)
|
b = String.to_integer(b)
|
||||||
case operator do
|
|
||||||
"+" -> add(a, b)
|
case operator do
|
||||||
"-" -> substract(a, b)
|
"+" -> add(a, b)
|
||||||
"*" -> multiply(a, b)
|
"-" -> substract(a, b)
|
||||||
"/" -> divide(a, b)
|
"*" -> multiply(a, b)
|
||||||
end
|
"/" -> divide(a, b)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
defp add(a, b), do: a + b
|
defp add(a, b), do: a + b
|
||||||
defp substract(a, b), do: a - b
|
defp substract(a, b), do: a - b
|
||||||
defp multiply(a, b), do: a * b
|
defp multiply(a, b), do: a * b
|
||||||
defp divide(a, b), do: a / b
|
defp divide(a, b), do: a / b
|
||||||
|
|
||||||
|
def center(dqs_list) do
|
||||||
|
longest = Enum.max_by(dqs_list, &String.length/1)
|
||||||
|
Enum.map(dqs_list, &print_centered_string(&1, longest))
|
||||||
|
end
|
||||||
|
|
||||||
|
defp print_centered_string(dqs, center_string) do
|
||||||
|
offset = (String.length(center_string) - String.length(dqs)) / 2
|
||||||
|
max_length = round(String.length(dqs) + Float.floor(offset))
|
||||||
|
dqs_padding = String.pad_leading(dqs, max_length)
|
||||||
|
IO.puts(dqs_padding)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue