Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
MarkUS095
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 18
#1

Найти в тексте группы слов, записанных одними и теми же буквами и отличающиеся только их порядком - C++

16.05.2014, 09:43. Просмотров 395. Ответов 2
Метки нет (Все метки)

Имеется текстовый файл, содержащий текст на русском языке. Найти в нем группы слов, записанных одними и теми же буквами и отличающиеся только их порядком, то есть перестановкой, например, (КОМАР, КОРМА). Все найденные слова записать в отдельный файл.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.05.2014, 09:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти в тексте группы слов, записанных одними и теми же буквами и отличающиеся только их порядком (C++):

Найти количество слов в тексте, которые начинаются и заканчиваются одинаковыми буквами - C++
#include<iostream> #include<string> using namespace std; int main() { int g(0), m, k; string text; int sum = 0; cout <<...

Создать текстовый файл содержащий все группы слов из словаря отличающиеся расположением букв - C++
Нужно сделать лабу,я впринципе копирование сделал,но вот только он дальше проверки 1ого слова не идёт =( Дан текстовый файл-словарь (в...

Определить, каких слов в тексте больше: состоящих только из букв, или только из цифр - C++
определить, каких слов в тексте больше состоящих только из букв или только из цифр пока не разобрался со строками

Найти группы слов, записанных одними и теми же буквами, но отличающиеся их порядком - C#
Найти группы слов, записанных одними и теми же буквами, но отличающиеся их порядком. (Например: КОРМА, КОМАР). В файле используются только...

Найти все слова, отличающиеся только порядком букв в заданном файле - C#
Есть 2 задачи: 1) найти все слова, отличающиеся только порядком букв в заданном файле. Результатом работы приложения должен быть...

Найти все анаграммы (слова, отличающиеся только порядком букв) в заданном файле - C#
Здравствуйте! Я закончил вуз и хочу устроиться стажером C#. В университете мы выполняли простые задания и в короткие строки, поэтому не...

2
outoftime
║XLR8║
510 / 432 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
16.05.2014, 19:24 #2
MarkUS095,
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <iostream>
#include <map>
#include <set>
#include <vector>
#include <string>
 
class multiset : public std::multiset<char> {
public:
    multiset(std::string::const_iterator begin, 
             std::string::const_iterator end)
        : std::multiset<char>(begin, end) { }
    
    bool operator< (const multiset &value) {
        if (this->size() < value.size()) 
            return false;
        
        auto it_a = this->cbegin(), 
             it_b = value.cbegin();
        while (it_a != this->cend() && it_b != value.cend())
            if (*(it_a++) < *(it_b++)) 
                return false;
        
        return true;
    }
};
 
class map : public std::map<multiset, std::vector<std::string>> {
public:
    void add(const std::string &s) {
        multiset m(s.cbegin(), s.cend());       
        this->operator[](m).push_back(s);
    }
    
    friend std::ostream &operator<< (std::ostream &out, const map &m) {
        for (auto pair: m) {
            out << "\033[1;33mChars: \033[0m";
            for (char c: pair.first)
                out << c;
            out << "\t\033[1;33mWords: \033[0m";
            for (auto s: pair.second)
                out << s << ' ';
            out << std::endl;
        }
        
        return out;
    }
};
 
int main (int argc, char const* argv[]) {
    map m;
    
    m.add("some_word");
    m.add("soemwo_rd");
    m.add("so_mwored");
    m.add("ome_rwosd");
    
    m.add("enoter_word");
    m.add("en_orterwod");
    
    std::cout << m;
    
    return 0;
}
Довольно элегантное решение.
Bash
1
2
3
4
ruslan@TFTM-K53TA:~/Programming/c++/cyberforum$ make && ./main
clang++ main.cpp -o main -std=c++11
Chars: _deenoorrtw  Words: enoter_word en_orterwod 
Chars: _demoorsw    Words: some_word soemwo_rd so_mwored ome_rwosd
0
MarkUS095
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 18
19.05.2014, 22:45  [ТС] #3
Напиши пожалуйста пояснения или комментарии
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2014, 22:45
Привет! Вот еще темы с ответами:

List заполняется одними и теми же данными - C#
List заполняется одними и теми же данными public void Skips() { string str = &quot;Select * from...

Определить каких слов в тексте больше: состоящие только из слов или только из букв - C (СИ)
определить каких слов в тексте больше: состоящие только из слов или только из букв??? я не могу сделать проверку на наличие в слове и букв...

Вывести на экран слова, отличающиеся лишь порядком следования букв - C (СИ)
Всем здрасте! Заранее спасибо, если Вы даже просто подумали над моей проблемкой. В общем, к делу. Задача была таковой: Дана строка...

Количество слов в тексте с повряющимися буквами - Java SE
Помогите пожалуйста с задачей, нужно считать из файла текст и вывести все слова с повторяющимися буквами то есть борода, молоко, колбаса и...


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

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

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