public static BagDefinition Parse(string input) { var definition = new BagDefinition(); var inputs = input.Split(SPLIT_TERM); definition.Colour = inputs[0].Trim(); var ruleDefinitions = inputs[1].Split(", ").Select(rd => rd.Trim()); definition.Rules.AddRange(ruleDefinitions.Select(rd => BagRule.Parse(rd))); return(definition); }
public static void Main(string[] args) { var allRules = GetRules(true).ToList(); var targetBagColour = "shiny gold"; //targetBagColour = "light chartreuse"; //targetBagColour = "dark maroon"; var parsedRules = allRules.Select(rule => BagDefinition.Parse(rule)); // CountNestedColours(parsedRules, targetBagColour); var totalNests = CountNestedBags(parsedRules, targetBagColour); Console.WriteLine($"Total nested bags: {totalNests}"); }