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

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

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

Найти количество слов в тексте C++
C++ В последовательности слов найти и поменять местами пару слов, у которых первые 3 буквы одного совпадают с последними 3 буквами другого
Из каждой группы подряд идущих слов оставить только одну C++
определить, каких слов в тексте больше состоящих только из букв или только из цифр C++
C++ найти и поменять местами пару слов, у которых первые три буквы одного совпадают с последними тремя буквами другого (дописать)
Строка: Напечатать те слова, которые отличаются только порядком следования букв. C++
Ввести n положительных целых чисел. Найти количество чисел, записанных только четными цифрами C++
C++ Найти количество слов в тексте, которые начинаются и заканчиваются одинаковыми буквами

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
outoftime
║XLR8║
 Аватар для outoftime
505 / 427 / 33
Регистрация: 25.07.2009
Сообщений: 2,297
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
MarkUS095
0 / 0 / 0
Регистрация: 16.05.2014
Сообщений: 18
19.05.2014, 22:45  [ТС]     Найти в тексте группы слов, записанных одними и теми же буквами и отличающиеся только их порядком #3
Напиши пожалуйста пояснения или комментарии
Yandex
Объявления
19.05.2014, 22:45     Найти в тексте группы слов, записанных одними и теми же буквами и отличающиеся только их порядком
Ответ Создать тему
Опции темы

Текущее время: 19:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru