File tree Expand file tree Collapse file tree 5 files changed +57
-0
lines changed Expand file tree Collapse file tree 5 files changed +57
-0
lines changed Original file line number Diff line number Diff line change 1+ defmodule Solution do
2+ @ spec count_bits ( n :: integer ) :: [ integer ]
3+ def count_bits ( n ) do
4+ Enum . map ( 0 .. n , fn i ->
5+ Integer . digits ( i , 2 ) |> Enum . count ( & ( & 1 != 0 ) )
6+ end )
7+ end
8+ end
Original file line number Diff line number Diff line change 1+ defmodule Solution do
2+ @ spec group_anagrams ( strs :: [ String . t ] ) :: [ [ String . t ] ]
3+ def group_anagrams ( strs ) do
4+ Enum . group_by ( strs , & ( String . codepoints ( & 1 ) |> Enum . sort ) ) |> Map . values
5+ end
6+ end
7+
8+ # 최초엔 아래 코드로 시도했으나 strs.length가 커지면 시간초과...
9+ #
10+ # defmodule Solution do
11+ # @spec group_anagrams(strs :: [String.t]) :: [[String.t]]
12+ # def group_anagrams(strs) when length(strs) < 2, do: [strs]
13+ # def group_anagrams([], res), do: res
14+
15+ # def group_anagrams([head|tail], res \\ []) do
16+ # split_sort_head = split_sort(head)
17+ # anagrams = Enum.reduce(tail, [head], fn x, acc ->
18+ # if split_sort(x) == split_sort_head do
19+ # acc ++ [x]
20+ # else
21+ # acc
22+ # end
23+ # end)
24+
25+ # group_anagrams(tail -- anagrams, [anagrams|res])
26+ # end
27+
28+ # defp split_sort(str) do
29+ # String.graphemes(str) |> Enum.sort_by(&(&1), :asc)
30+ # end
31+ # end
Original file line number Diff line number Diff line change 1+ defmodule Solution do
2+ @ spec missing_number ( nums :: [ integer ] ) :: integer
3+ def missing_number ( nums ) do
4+ ( 0 .. length ( nums ) |> Enum . to_list ) -- nums |> Enum . at ( 0 )
5+ end
6+ end
Original file line number Diff line number Diff line change 1+ defmodule Solution do
2+ @ spec hamming_weight ( n :: integer ) :: integer
3+ def hamming_weight ( n ) do
4+ Integer . to_string ( n , 2 ) |> String . graphemes |> Enum . count ( & & 1 != "0" )
5+ end
6+ end
Original file line number Diff line number Diff line change 1+ # @param {Integer} n, a positive integer
2+ # @return {Integer}
3+ def reverse_bits ( n )
4+ # 이유는 모르겠으나 문제 설명과는 달리 leetcode 루비 테스트코드에선 n이 10진수 Integer로 들어오네요.
5+ n . to_s ( 2 ) . rjust ( 32 , '0' ) . reverse . to_i ( 2 )
6+ end
You can’t perform that action at this time.
0 commit comments