本文共 1260 字,大约阅读时间需要 4 分钟。
要解决这个问题,我们需要找到所有以给定字符串 T 为前缀的单词,并按字典序升序输出。以下是详细的解决方案:
#include#include #include #include using namespace std;bool isPrefix(const string& str, const string& pre) { if (str.size() < pre.size()) return false; size_t i = 0; while (i < pre.size() && str[i] == pre[i]) { i++; } return i == pre.size();}int main() { int N; cin >> N; vector words; for (int i = 0; i < N; ++i) { string word; cin >> word; words.push_back(word); } string T; cin >> T; vector result; for (const string& word : words) { if (isPrefix(word, T)) { result.push_back(word); } } sort(result.begin(), result.end()); for (const string& word : result) { cout << word << endl; } return 0;}
words 中。读取字符串 T。isPrefix 检查字符串 str 是否以 pre 为前缀。通过逐个字符比较,确保 pre 的所有字符都在 str 中依次出现。result 向量中。使用 std::sort 对结果进行字典序排序。这个方法确保了我们能够高效且准确地找到所有符合条件的单词,并按要求输出。
转载地址:http://eeefk.baihongyu.com/