gpt4 book ai didi

c++ - 在单词列表中查找字谜

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:12:46 24 4
gpt4 key购买 nike

我有一个单词列表和一个包含许多字谜的文件。这些字谜是在单词列表中找到的单词。我需要开发一种算法来找到匹配的单词并在输出文件中生成它们。到目前为止,我开发的代码只适用于前两个词。此外,我无法让代码很好地处理其中任何位置包含数字的字符串。请告诉我如何修复代码。

#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main (void)
{
int x = 0, y = 0;
int a = 0, b = 0;
int emptyx, emptyy;
int match = 0;
ifstream f1, f2;
ofstream f3;
string line, line1[1500], line2[50];
size_t found;

f1.open ("wordlist.txt");
f2.open ("file.txt");
f3.open ("output.txt");

while (f1.eof() == 0)
{
getline (f1, line);
line1[x] = line;
x++;
}

while (f2.eof() == 0)
{
getline (f2, line);
line2[y] = line;
y++;
}

//finds position of last elements
emptyx = x-1;
emptyy = y-1;

//matching algorithm
for (y = 0; y <= emptyy; y++)
{
for (x = 0; x <= emptyx; x++)
{
if (line2[y].length() == line1[x].length())
{
for (a = 0; a < line1[x].length(); a++)
{
found = line2[y].find(line1[x][a]);
if (found != string::npos)
{
match++;
line2[y].replace(found, 1, 1, '.');

if (match == line1[x].length())
{
f3 << line1[x] << ", ";
match = 0;
}
}
}
}
}
}

f1.close();
f2.close();
f3.close();

return 0;
}

最佳答案

第 1 步:以词表中每个词中排序后的字符为键,以词为​​值建立索引。

act   -  cat
act - act
dgo - dog

...

aeeilnppp - pineapple

....

etc...

第 2 步:对于您要查找的每个变位词,对变位词中的字符进行排序,然后与索引进行匹配,以检索具有匹配排序键的索引中的所有单词。

关于c++ - 在单词列表中查找字谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6422632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com