summaryrefslogtreecommitdiff
path: root/go/allergies/allergies.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/allergies/allergies.go')
-rw-r--r--go/allergies/allergies.go29
1 files changed, 29 insertions, 0 deletions
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
+}