#include <bits/stdc++.h> using namespace std; int main() { freopen("typist2.in", "r", stdin); freopen("typist2.out", "w", stdout); int n, L; cin >> n >> L; string input; cin >> input; vector<string> wordList(n); for (int i = 0; i < n; ++i) { cin >> wordList[i]; } int minErrors = INT_MAX; for (const auto& word : wordList) { int errors = 0; int j = 0; for (char c : word) { while (j < L && input[j] != c) { ++j; ++errors; } if (j >= L) { break; } ++j; } minErrors = min(minErrors, errors + L - j); } cout << minErrors; return 0; }
时间: 2024-02-14 09:27:45 浏览: 71
万能头文件#include&amp;lt;bits/stdc++.h&amp;gt; using namespace std;
这段代码看起来是正确的,并且与之前提供的代码非常相似。它使用贪心算法的思想来解决问题,遍历词汇表中的每个单词,并在输入中寻找匹配的字符。如果找到了匹配的字符,则继续寻找下一个字符;如果在寻找过程中没有找到匹配的字符或者已经遍历完输入的所有字符,则意味着当前单词无法由输入拼写出来。在这种情况下,我们计算错误次数`errors`,并将其与剩余未匹配的输入字符个数`L-j`相加,得到当前单词所需的总错误次数。最后,我们将当前单词所需的总错误次数与`minErrors`进行比较,更新`minErrors`为较小的值。最终,输出`minErrors`即为至少需要打错的字符数。
请测试该代码,如果有任何问题或需要进一步的帮助,请随时告诉我。
阅读全文