Конечно, есть лучший способ проверить точность вашего ключа?
Но это не главное, вот что я бы сделал:
Использование "quackdogsomethinggodknowswhat"
У меня был бы рекурсивный метод, в котором, начиная с начала строки, я бы вызывал рекурсивный метод для всех слов, с которых начинается предметная строка, в данном случае «qua» и «quack» со строкой notсодержащий слово ("dogomethinggodknowswhat" для шарлатана).Верните все, что больше: 1 + наибольшее значение, возвращаемое из всех вызовов вашего метода ИЛИ 0 + вызов метода для строки, начинающейся с индекса 1 ("uackdogsomethinggodknowswhat").
Это, вероятно, будет работать лучше, если вы сохранитеВаш список слов в каком-то дереве.
Если вам нужен псевдокод, спросите!