Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Основы С++ / Тема 5 / Урок 3. Преимущества множеств / Задача 1
- Задание 1
- Представьте, что анализируете запросы пользователей в вашей поисковой системе. Есть слова запроса и описание животного. Посчитайте релевантность запроса — размер множества слов, которые входят и в запрос, и в описание.
- Формат ввода
- Сначала вводится строка-запрос, затем с новой строчки строка-описание. В примерах \n — символ переноса строчки. Слова до \n — это запрос. Слова после \n — **описание.
- Формат вывода
- Выведите единственное целое число — размер пересечения множеств слов из запроса и описания.
- Примеры
- ВВОД
- tiny cat \n cat without tail
- ВЫВОД
- 1
- ВВОД
- very kind dog with brown fur \n dog with long tail
- ВЫВОД
- 2
- */
- #include <iostream>
- #include <vector>
- #include <string>
- #include <set>
- using namespace std;
- // берём данные из вектора и заносим их во множество
- set<string> Vector2set(vector<string> query_words){
- set<string> s;
- for(string word: query_words)
- s.insert(word);
- return s;
- }
- // узнаем размер множества слов, которые входят и в запрос, и в описание
- int CalculateSimilarity(vector<string> first, vector<string> second) {
- set<string> query_set = Vector2set(first);
- set<string> description_set = Vector2set(second);
- set<string> intersection;
- for(string word: query_set){
- if(description_set.count(word) > 0){
- intersection.insert(word);
- }
- }
- return intersection.size();
- }
- // выделяем в строке слова и заполняем ими вектор words
- vector<string> SplitIntoWords(string text) {
- vector<string> words;
- string word;
- for (int i = 0; i < text.size(); ++i) {
- if (text[i] == ' ') {
- words.push_back(word);
- word = "";
- } else {
- word += text[i];
- }
- }
- words.push_back(word);
- return words;
- }
- int main() {
- string query, description;
- getline(cin, query);
- getline(cin, description);
- cout << CalculateSimilarity(SplitIntoWords(query), SplitIntoWords(description)) << endl;
- return 0;
- }
Add Comment
Please, Sign In to add comment