using System.Collections.Generic;
public static void Main()
List<List<string>> codeList = new List<List<string>>{new List<string>{"apple", "apple"}, new List<string>{"banana", "anything", "banana"}};
Console.WriteLine(CheckWinner(codeList, new List<string>{"orange", "apple", "apple", "banana", "orange", "banana"}));
Console.WriteLine(CheckWinner(codeList, new List<string>{"orange", "orange", "apple", "apple", "orange", "orange", "banana", "orange", "banana"}));
Console.WriteLine(CheckWinner(codeList, new List<string>{"orange", "orange", "apple", "apple", "orange", "orange", "banana", "orange", "orange"}));
Console.WriteLine(CheckWinner(codeList, new List<string>{"orange", "orange"}));
Console.WriteLine(CheckWinner(codeList, new List<string>{"banana", "orange", "banana", "apple", "apple"}));
Console.WriteLine(CheckWinner(codeList, new List<string>{"apple","banana","apple","banana","orange", "banana"}));
public static int CheckWinner(List<List<string>> codeList, List<string> shoppingCart)
if (codeList == null || shoppingCart == null)
for (int m = 0; m < codeList.Count; m++)
for (int i = 0; i < codeList[m].Count;)
if(j == shoppingCart.Count){
if (codeList[m][i] == shoppingCart[j] || codeList[m][i] == "anything")
while (j < shoppingCart.Count && codeList[m][i] != shoppingCart[j])
if(m == codeList.Count - 1)
return (reachedEnd) ? 1 : 0;