using System.Collections.Generic;
public static void Main()
var wordDictionary = new HashSet<string> {"a", "aa", "aaa"};
var wordDictionary2 = new HashSet<string> {"hot", "tap", "pan"};
Console.WriteLine(validWord(wordDictionary, "abc"));
Console.WriteLine(validWord(wordDictionary2, "aaaaakjdfhakhotnkjdas"));
public static int validWord(HashSet<string> dictionary, string query)
string longestSubstr = "";
for (int i = query.Length; i > 0; i--)
for (int start = 0; start <= query.Length - i; start++)
substr = query.Substring(start, i);
if (dictionary.Contains(substr) && longestSubstr.Length < substr.Length)
return longestSubstr.Length == 0 ? 0 : query.Length - longestSubstr.Length;