Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Цепочка открыта. Сообщений: 3. Все сообщения прочитаны.
- Перейти к содержимому
- Gmail используется с программой чтения с экрана
- in:sent
- Поместить во входящие Ещё
- 56 из 111
- Собеседование
- Входящие
- x
- Rostyslav Miasnikov 10.06.2016
- Добрый день, Павел, Мы ждем Вас на собеседование 13 июня (понедельник) в 17-3...
- Zelenko Pavel <zelenkopa@gmail.com>
- Прикрепленные файлы15.06.2016
- кому: Rostyslav
- Тестовое задание
- 10 июня 2016 г., 16:03 пользователь Rostyslav Miasnikov <Rostyslav.Miasnikov@qaddress.com> написал:
- Область прикрепленных файлов
- Zelenko Pavel <zelenkopa@gmail.com>
- 15.06.2016
- кому: Rostyslav
- А, не увидел сообщения.
- 15 июня 2016 г., 12:29 пользователь Zelenko Pavel <zelenkopa@gmail.com> написал:
- Нажмите здесь, чтобы Ответить или Переслать
- Использовано 0,72 ГБ (4%) из 15 ГБ
- Управление
- Условия - Конфиденциальность
- Последние действия в аккаунте: 9 мин. назад
- Открыто в другом месте Дополнительная информация
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <unordered_map>
- const std::string DICTIONARY_PATH = "input.txt";
- const std::string REQUESTS_PATH = "req.txt";
- const std::string OUTPUT_PATH = "output.txt";
- class StringsStore
- {
- public:
- void AddString(const std::string& str);
- bool FindString(const std::string& str) const;
- private:
- struct Node
- {
- Node() : finish(false) {}
- bool finish;
- std::unordered_map<char, Node> children;
- } root_;
- };
- void StringsStore::AddString(const std::string& str)
- {
- Node * current = &root_;
- for (char s : str)
- {
- if (current->children.find(s) == current->children.end())
- current->children.insert(std::make_pair(s, Node()));
- current = ¤t->children[s];
- }
- current->finish = true;
- }
- bool StringsStore::FindString(const std::string& str) const
- {
- const Node* current = &root_;
- for (char s : str)
- {
- const auto& child = current->children.find(s);
- if (child == current->children.end())
- return false;
- current = &child->second;
- }
- return current->finish;
- }
- namespace StringsStoreHelper
- {
- StringsStore ReadFromFile(const std::string& path)
- {
- StringsStore store;
- std::ifstream infile(path);
- std::string line;
- while (std::getline(infile, line))
- store.AddString(line);
- return store;
- }
- }
- int main()
- {
- StringsStore store = StringsStoreHelper::ReadFromFile(DICTIONARY_PATH);
- std::ifstream reqfile(REQUESTS_PATH);
- std::ofstream outfile(OUTPUT_PATH);
- std::string line;
- while (std::getline(reqfile, line))
- outfile << store.FindString(line) << "\n";
- return 0;
- }
- Source.cpp
- Отображается файл "Source.cpp"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement