Erlang Palindrome Rearranging
-module(palindrome_rearranging).
-export([palindrome_rearranging/1]).
palindrome_rearranging(InputString) ->
Counts = lists:foldl(fun(C, Map) ->
maps:update_with(C, fun(N) -> N + 1 end, 1, Map)
end, #{}, InputString),
OddCount = length([ok || {_, V} <- maps:to_list(Counts), V rem 2 =/= 0]),
OddCount =< 1.
This counts character frequency and checks whether the string has the right number of odd counts to form a palindrome.