如何让我的函数只能从排列中找到现实世界

How to make my function only find real worlds from permutation

本文关键字:世界 排列 我的 函数      更新时间:2023-10-16

下面的代码从用户那里获取一个单词,然后切换每个字母,它列出了它可以进行的所有可能的组合,我希望过滤掉所有不是单词的结果,我有一个字典,字典中的单词可以使用 GetWord() 抓取

;

一个例子输入admirer输出married

目前它会做

输入admirer输出admirre, adminerr...ect

以下代码使此目的发生。

void Permutations(string input) {
    //sorts input for new word
    sort(input.begin(), input.end());
    do cout << input << endl; while (next_permutation(input.begin(), input.end()));
}
int FindPermutations() {
    string word;
    cout << "Input word: ";
    cin >> word;
    //Runs Premutations with given string
    Permutations(word);
    return 0;
}

所以我的问题是我怎样才能使排列只找到真实的单词?

从 http://wordlist.sourceforge.net 下载英语词典文本文件。或者,如果您在 unix 上:cat /usr/share/dict/words > words.txt检查文件中是否存在该单词,以确定它是否是真实的单词。您可以使用包含文件中每个字母表的第一个单词的起始位置的查找表,并跳转到该位置以稍微优化搜索算法。