package wordy import ( "strconv" "strings" ) // Answer parses a simple word problem and returns the result // or false if it wasn't valid func Answer(inp string) (int, bool) { var ret int var operation string var didOperation bool words := strings.Fields(inp) for i := range words { tstWord := strings.Replace(words[i], "?", "", -1) if v, err := strconv.Atoi(tstWord); err == nil { switch operation { case "": ret = v case "plus": ret += v didOperation = true case "minus": ret -= v didOperation = true case "multiplied": ret *= v didOperation = true case "divided": ret /= v didOperation = true } } else { if words[i] == "plus" || words[i] == "minus" || words[i] == "multiplied" || words[i] == "divided" { operation = words[i] } } } return ret, didOperation }