From 6a5f7a3eeb423d645d2092bf841ffc29b0589b1f Mon Sep 17 00:00:00 2001 From: openset Date: Tue, 26 Feb 2019 10:12:17 +0800 Subject: [PATCH] Add: Reverse Bits --- problems/reverse-bits/reverse_bits.go | 6 +++++ problems/reverse-bits/reverse_bits_test.go | 26 ++++++++++++++++++++++ 2 files changed, 32 insertions(+) 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) + } + } +}