From c81284ad40511252401023ef238e3a6f47120aa2 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 28 Aug 2016 02:17:28 +0200 Subject: Solve allergies --- go/allergies/allergies.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 go/allergies/allergies.go (limited to 'go/allergies/allergies.go') diff --git a/go/allergies/allergies.go b/go/allergies/allergies.go new file mode 100644 index 0000000..1277b74 --- /dev/null +++ b/go/allergies/allergies.go @@ -0,0 +1,29 @@ +package allergies + +var index = map[string]int{ + "eggs": 0x01, + "peanuts": 0x02, + "shellfish": 0x04, + "strawberries": 0x08, + "tomatoes": 0x10, + "chocolate": 0x20, + "pollen": 0x40, + "cats": 0x80, +} + +func Allergies(n int) []string { + if n <= 0 { + return nil + } + var s []string + for k, v := range index { + if n&v != 0 { + s = append(s, k) + } + } + return s +} + +func AllergicTo(n int, s string) bool { + return n > 0 && n&index[s] != 0 +} -- cgit v1.2.3