I would think the fastest you can tell if a word is an isogram is by using order N. Its akin to finding people in the phonebook that has the same number, which for the purpose of finding an isogram, would be optimal.

However, I also think, it isn’t a practical solution to our overall goals in this program. An algorithm of O(n log n) would probably be (especially for the Bulls/Cows portion) the most appropriate since we are checking for numbers, length of the word, and capitals within the input. O(N^2) is also suitable as the processing power required for this solution in general, is minimal and can be used for each and every use case if you wanted to.