Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 08.06.2018
Сообщений: 1
1

Файлы: из считанной строки S удалите все слова, встречающиеся более двух раз

08.06.2018, 08:30. Показов 904. Ответов 1
Метки нет (Все метки)

Для считанной строки S удалите все слова, встречающиеся более двух раз.
Хотелось бы увидеть пример реализации такого задания.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2018, 08:30
Ответы с готовыми решениями:

Для считанной строки S удалите все слова, встречающиеся более двух раз
Собстственно вот само задание: "Для считанной строки S удалите все слова, встречающиеся более двух...

Дан текстовый файл. Преобразовать его, удалив из каждой строки слова, встречающиеся более двух раз.
Дан текстовый файл. Преобразовать его, удалив из каждой строки слова, встречающиеся более двух раз.

Удалить из массива все элементы, встречающиеся более двух раз
Дан целочисленный массив размера N. Удалить из массива все эле- менты, встречающиеся более двух...

Удалить из массива все элементы, встречающиеся более двух раз
Все массивы создаются динамически. Ввод и вывод массива осуществлять в одну строку. Серия -...

__________________

Записывайтесь на профессиональные курсы C++ разработчиков
1
2226 / 1729 / 865
Регистрация: 21.12.2010
Сообщений: 3,073
Записей в блоге: 11
09.06.2018, 12:21 2
Лучший ответ Сообщение было отмечено strah20 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
#include <unordered_map>
#include <vector>
#include <regex>
#include <cstdlib>
 
 
int main()
{
    system("chcp 1251");
    std::string str{ "aaa bbb aaa, bbb bbbb, ввв, aaa ввв, ввв." }, sres;
    std::regex rgx{ "[А-Яа-яЁё[:alpha:]]+" };
    std::vector<std::ssub_match> vct;
    std::unordered_map<std::string, int> ump;
    for (std::sregex_token_iterator ib{ str.begin(), str.end(), rgx }, ie; ib != ie; ++ib)
    {
        vct.emplace_back(*ib);
        ++ump[ib->str()];
    }
 
    sres.append(str.cbegin(), vct.size() == 0 ? str.end() : vct[0].first);
    for (int i = 0; i < vct.size(); ++i)
    {
        auto ib = ump[vct[i]] <= 2 ? vct[i].first : vct[i].second;
        auto ie = i == vct.size() - 1 ? str.end() : vct[i + 1].first;
        sres.append(ib, ie);
    }
 
    std::cout << sres << std::endl;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2018, 12:21

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Удалить из массива все элементы встречающиеся более двух раз
Задание: Задан целочисленный массив размера N. Удалить из массива все элементы встречающиеся более...

Удалить из массива все элементы встречающиеся более двух раз
Дано целочисленный массив размера N. Удалить из массива все элементы, встречаются более двух раз ,...

Удалить из массива все элементы, встречающиеся более двух раз
Условие задачи описано ниже, помогите пж найти ошибку в коде :) #include &lt;stdio.h&gt; #include...

Удалить из массива все элементы, встречающиеся более двух раз
Помогите пожалуйста с задачей: &quot;Дан целочисленный массив, состоящий из n элементов. Удалить из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.