用c++解决单词搜索
Using c++ to solve wordsearch.
很抱歉用一个简单的问题打扰大家,但我对C++很陌生,不知道该怎么办。因此,我得到了一个C++框架,它可以读取2个txt文件,其中包含单词搜索和要查找的单词列表,并将结果显示在另一个txt文件中。我正在努力完成这个框架,但我不知道该程序将如何准确地检查所有8个方向,也不知道系统将如何将词典文件中的单词与wordsearch进行比较,并将任何匹配的单词放入results.txt文件中。我已经附上了下面的框架,任何关于如何开始的信息或建议都将不胜感激。
dictionary.txt
ABSEIL
BIKE
PIXEL
RESIGHTS
YARDWORKS
wordsearch.txt
S T H G I S E R B
G K L L B X D I E
K P R H I M K L D
T G Y O L E X I P
B A P T W H T E J
T Q U D X D W S F
V M V S H L R B A
H Q L B C K S A Y
R D G B F J P Q Y
Wordsearch.h
#pragma once
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <Windows.h>
using namespace std;
class WordSearch
{
public:
WordSearch();
~WordSearch();
bool ReadPuzzle();
bool ReadDictionary();
bool SolvePuzzleWithDictionary();
void WriteResults(string fileName);
private:
LARGE_INTEGER start, end, frequency;
const int NUMBER_OF_RUNS;
const string PUZZLE_NAME;
const string DICTIONARY_NAME;
};
Wordsearch.cpp
#include "WordSearch.h"
#include <algorithm>
#include <iterator>
#include <iostream>
#include <iomanip>
using namespace std;
WordSearch::WordSearch() : NUMBER_OF_RUNS(500), PUZZLE_NAME("wordsearch_grid.txt"), DICTIONARY_NAME("dictionary.txt")
{
}
WordSearch::~WordSearch()
{
}
bool WordSearch::ReadPuzzle()
{
cout << endl << "ReadPuzzle() has NOT been implemented" << endl;
return true;
}
bool WordSearch::ReadDictionary()
{
cout << endl << "ReadDictionary() has NOT been implemented" << endl;
return true;
}
bool WordSearch::SolvePuzzleWithDictionary() {
cout << endl << "SolvePuzzleWithDictionary() has NOT been implemented" << endl;
double timeTakenInSeconds;
QueryPerformanceFrequency(&frequency);
QueryPerformanceCounter(&start);
for (int n = 0; n < NUMBER_OF_RUNS; ++n) {
// Add solving code here!
}
QueryPerformanceCounter(&end);
timeTakenInSeconds = (end.QuadPart - start.QuadPart) / (double)(frequency.QuadPart*NUMBER_OF_RUNS);
cout << fixed << setprecision(10) << "SolvePuzzleWithDictionary() - " << timeTakenInSeconds << " seconds" << endl;
return false;
}
void WordSearch::WriteResults(string fileName) {
cout << "WriteResults() has NOT been implemented" << endl;
}
您可能想要一个用于在所有方向上移动的索引增量数组(前提是您将字段存储在矩阵中),这样您就可以编写用于尝试所有方向的通用代码:
const int dirIncr[][2] = {{-1, 0}, {0, 1}, {1, 0}, {0, -1}/*...*/}
因此,您可以在所有可能的起始单元格中循环,并从每个销售搜索向所有可能的方向循环(在每一步中,您都必须检查当前坐标是否仍然适合您的数组)。
至于实际搜索,前缀树在这里可能会有所帮助。
相关文章:
- 当您在此单词中搜索单词时调整字符数组的大小?
- 按单词搜索文件,然后在C++中打印特定行数
- 简单的二分搜索对我不起作用。我正在尝试从文本文件中搜索单词
- 如何搜索向单词添加字母的所有可能组合?
- 搜索单词时的字母模式逻辑
- Xapian - 搜索查询不检索匹配项,除非将""添加到每个单词
- Qt C++macOS问题。我正在使用函数 .find( "a word") 在多集中搜索单词,它适用于 Windows 但不适用于 mac
- 如何使用二叉搜索计算搜索单词所需的时间
- 读取每个单词的文件,并使用二叉搜索树(词典)对这些单词进行排序
- C++ 在 CSV 文件中搜索单词
- 从文件搜索搜索单词,然后将整个行复制到另一个文件
- C++,用于在大文件中的行上搜索单词的算法
- 使用 std 指令在文本文件中搜索单词
- 如何在文本文件中的字符串中搜索单词
- 在搜索单词时使用问号来代表任何字符
- 在一个非常大的文件中搜索单词
- 在字符串文本(1-D数组/c++)中搜索单词
- 在两个文本文件中搜索单词
- 如何在文本文件中搜索单词,如果找到,请打印出整行
- 使用C在文本中搜索单词,并显示该单词后面的信息