diff --git a/problems/reverse-bits/reverse_bits.go b/problems/reverse-bits/reverse_bits.go index 9a476d720..774ca3ff8 100644 --- a/problems/reverse-bits/reverse_bits.go +++ b/problems/reverse-bits/reverse_bits.go @@ -1 +1,7 @@ package reverse_bits + +import "math/bits" + +func reverseBits(num uint32) uint32 { + return bits.Reverse32(num) +} diff --git a/problems/reverse-bits/reverse_bits_test.go b/problems/reverse-bits/reverse_bits_test.go index 9a476d720..9ddd11930 100644 --- a/problems/reverse-bits/reverse_bits_test.go +++ b/problems/reverse-bits/reverse_bits_test.go @@ -1 +1,27 @@ package reverse_bits + +import "testing" + +type caseType struct { + input uint32 + expected uint32 +} + +func TestReverseBits(t *testing.T) { + tests := [...]caseType{ + { + input: 43261596, + expected: 964176192, + }, + { + input: 4294967293, + expected: 3221225471, + }, + } + for _, tc := range tests { + output := reverseBits(tc.input) + if output != tc.expected { + t.Fatalf("input: %v, output: %v, expected: %v", tc.input, output, tc.expected) + } + } +}