Я пишу текст Twist с использованием рекурсии на C++. Для запуска у меня есть класс Trie (содержит класс TrieNode), готовый к использованию. Моя программа сначала загружает слова из словаря и сохраняет их в объекте Trie. Затем он предложит пользователю ввести 7-буквенное слово. После прочтения всех букв мне нужно использовать рекурсию, чтобы найти все возможные комбинации букв, которые являются словами в загруженном словаре (Trie). Эти возможные слова затем сохраняются в другом Trie и распечатываются позже. Каждое возможное слово должно быть длиной не менее 3 букв и должно быть в словаре.Текст Twist игра с использованием рекурсии
Я застрял там, где мне нужно написать функцию рекурсии для поиска слов, потому что почему-то я не вижу, как рекурсия может применяться в этой ситуации. Может ли кто-нибудь дать мне подсказку? Мне не нужны полные коды; Мне просто нужно, чтобы кто-то зажег эту маленькую лампочку для меня, чтобы я знал, с чего начать. Большое спасибо!
P.S. Я также сделал исследование по возвратам и проблемам 8-Queen, но до сих пор я запутался ...
Это моя основная программа:
void findWord(int i, const string &word, const Trie&lexion){
//My question is, what should the base case be?
//I'm a bit clueless: if I start with this:
//if(word.length()<=1){
// return true;
// }
// else{
// return findWord(i,word.substr(1,word.length()),lexion);
// }
//I know this doesn't make sense; but I'm really lost and don't know where to start.
}
void main(){
string word;
Trie lexion = Trie();
lexion.loadFromFile("ospd.txt");
word = getWord();//get word from the user
for (size_t i = 3; i <= 7; i++){
findWord(i,word,lexion);
}
}
Благодарим вас за разъяснения! Это очень просто. Я думаю, я могу видеть, куда вы идете! Мне нужно перечитать и подумать об этом еще до начала кодирования. Еще раз спасибо вам большое! – HoneyWine
Нет проблем и удачи! Я рад, что мне удалось помочь, рекурсия - это то, что требует немного практики, чтобы получить – cactus1