Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ помогите определить баг или недочёт в программе. Задача ввести с клавиатуры массив и вывести на экран наибольший его элемент. Проблема заключается в if когда s<mas он всё время перескакивает на else вместо s=mas. #include <stdio.h> #include <conio.h> #define n 100 void main() { int i,j; https://www.cyberforum.ru/ cpp-beginners/ thread366958.html Динамическое выделение памяти C++
Подскажите как выделить динамически память мод двумерный массив... Спасибо. ... int *mass = new int ; //int *mass = new int ; ) Не работает... ...
C++ unistd.h https://www.cyberforum.ru/ cpp-beginners/ thread366955.html
как добавить unistd.h в биб Visual studio ??? закидываю в папку с проектом читается не правильно (((
C++ Целочисленная арифметика Добрый вечер. Пропустил практику по информатике, не понимаю по какому принципу решать задачу. Собственно вот: тема - целочисленная арифметика. Задание: дано вещественное число ABCDEF.GHIKLM, в котором буквы это любые цифры (0..9) Нужно переставить группу цифр XX между цифрами Y, Z. У меня F G между L, M. Тоесть ИЗ ABCDEF.GHIKLM нужно получить ABCDE.HIKLFGM https://www.cyberforum.ru/ cpp-beginners/ thread366924.html
error LNK2019: ссылка на неразрешенный внешний символ Что это? C++
Всем доброго вечера что это такое за непонятная ошибка? error LNK2019: ссылка на неразрешенный внешний символ и Ошибка 2 fatal error LNK1120: 1 неразрешенных внешних элементов #include<iostream> using namespace std; int main() { int n=1, m=5, v, x; cout << "Vvedite v" << endl;
C++ Запуск/Создание Windows Form в Win32 приложение ! Здравствуйте! Использую Visual Studio 2010. Учусь делать приложение игру на директх. Вопрос такой как запустить Форму видоус формс в вин32 приложении? Где его создать ? Как добавить в проект? Как запустить? #include <windows.h> #include <stdlib.h> #include <string.h> #include <tchar.h> #include "ddfunc.h" https://www.cyberforum.ru/ cpp-beginners/ thread366910.html
C++ Вывод дерева в консоли собственно надо вывести дерево на консоль построенное из сгенерированной последовательности чисел Вот что у меня вышло: // Идеальное дерево.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include "time.h" #include "stdlib.h" struct Node //описание узла https://www.cyberforum.ru/ cpp-beginners/ thread366878.html Динамическое выделение памяти C++
Всем здрасти.Если выделять динамически память,например: char *p=new char; и при этом не перегружать оператор new.То верны ли следующие утверждения. Это динамически выделенная память на самом деле то же самое что char p; т.е.статическая т.к.программа слетает при достаточно большом вводе в этот массив.
C++ Классы,перегрузка. Всем привет! Делаю класс комплексных чисел,появился вопрос. Весь класс писать смысла нет,вопрос не в этом. Вот он класс: class Cplex { public: double re; double im; https://www.cyberforum.ru/ cpp-beginners/ thread366864.html C++ Написать прокси. Всем привет.В качестве дополнительного задания было получено написать прокси.Сам изучаю с/с++.Если я правильно понимаю это задание связано с сетевым программированием,с чем пока я ещё не сталкивался.Так вот хотелось с чем предварительно следовало бы ознакомиться,кроме конечно понятия прокси? Добавлено через 32 минуты Если про прокси не по адресу,перенаправьте! Добавлено через 59 минут Так... https://www.cyberforum.ru/ cpp-beginners/ thread366860.html
C++ Программка
Всем привет ;) Помогите состовать небольшую программку на c++.Задачка про автобусы)) Даны 3 вида автобуса. 1-MS Sprinter Масса-3 тонны мощность-300000 вместительность-менее 25 человек 2-Neoplan Масса-5 тонн
C++ Вводится 10 чисел. Определить, есть ли среди них число 13 Я первый раз сдесь.Необходимо выполнить задачу:"Вводится 10 чисел. Определить, есть ли среди них число 13".Вот код, у меня всегда пишет что в данной последовательности имеется число 13, даже если его там нет. #include "stdafx.h" #include <math.h> #include <iostream> #include <conio.h> using namespace std; int main() {int i,b,u; https://www.cyberforum.ru/ cpp-beginners/ thread366830.html
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
16.10.2011, 13:19 0

Поиск анаграмм - C++ - Ответ 2074437

16.10.2011, 13:19. Показов 15038. Ответов 23
Метки (Все метки)

Ответ

Вот, решил через связность. Алгоритм, конечно, жуткий и жадный на память и ресурсы, но что придумал.

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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <algorithm>
 
/* определяет равенство строк по количеству вхождений каждой *
 * буквы в эту строку. пробелы цифры и пр. игнорируются      */
bool letter_cmp( const std::string &a, const std::string &b )
{
    unsigned count_a[ 'z' - 'a' + 1 ] = {0}; // количество вхождений букв в строку а
    unsigned count_b[ 'z' - 'a' + 1 ] = {0}; // количество вхождений букв в строку b
 
    // считаем a
    for( int i = 0; i < a.size(); i++ )
    {
        if( isalpha( a[i] ) )
           count_a[ 'z' - tolower( a[i] ) ]++;
    }
 
    // считаем b
    for( int i = 0; i < b.size(); i++ )
    {
        if( isalpha( b[i] ) )
           count_b[ 'z' - tolower( b[i] ) ]++;
    }
 
    // проверяем равенство вхождений каждой буквы
    for( int i = 0; i < 'z' - 'a'; i++ )
    {
        if( count_a[i] != count_b[i] )
           return false; // если количество вхождений этой буквы отличается, возвращаем false
    }
 
    return true; // если все вхождения равны, возвращаем true
}
 
int main()
{
    std::vector<std::string> lines; // здесь хранятся строки файла
    std::string input; // сюда вводится новая строка из файла
 
    // ---------- читаем весь файл ---------
    std::ifstream fs( "in.txt" );
 
    if( !fs.is_open() )
    {
       std::cerr << "error opening in.txt\n";
       return -1;
    }
 
    while( fs >> input )
       lines.push_back( input );
 
    fs.close();
 
    std::cout << "done reading " << lines.size() << " words\n\n";
 
    // ---- заполняем вектор связности -----
    std::vector<int> connectivity( lines.size() );
 
    for( int i = 0; i < lines.size(); i++ )
       connectivity[i] = i;
 
    // ---- определяем связность -----------
 
    for( int i = 0; i < lines.size(); i++ ) // проходим все строки
    {
        for( int u = 0; u < lines.size(); u++ ) // n*n раз
        {
            if( connectivity[i] != connectivity[u] ) // если эти две строки уже связаны, пропускаем их
            {
                if( letter_cmp( lines[i], lines[u] ) ) // иначе если строки равны по количеству вхождений букв
                {
                    // связываем их
                    int old_i = connectivity[i]; // старое значение ключа
 
                    for( int j = 0; j < connectivity.size(); j++ )
                    {
                        if( connectivity[j] == old_i ) // везде, где ключ старый
                           connectivity[j] = connectivity[u]; // меняем его на новый
                    }
                }
            }
        }
    }
 
    // ---- выводим все связанные слова ------
    for( int i = 0; i < connectivity.size(); i++ )
    {
        unsigned int out = 0;
 
        if( std::count( connectivity.begin(), connectivity.end(), i ) > 1 )
        {
            for( int u = 0; u < connectivity.size(); u++ )
            {
               if( connectivity[u] == i )
               {
                  if( out )
                     std::cout << ", ";
 
                  std::cout << lines[u];
                  out++;
               }
            }
 
            if( out )
               std::cout << '\n';
        }
    }
 
    return 0;
}
Интересно было бы увидеть более красивое решение.

Вернуться к обсуждению:
Поиск анаграмм C++
0
Заказать работу у эксперта
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.10.2011, 13:19
Готовые ответы и решения:

Строка: Поиск анаграмм
Дана строка длиной не более 255 символов, в которой вписаны слова, разделенные пробелами (словом...

Поиск анаграмм во входном файле
Условие. В заданном алфавите слов найти все анаграммы. Входные данные. Есть файл &quot;input.txt&quot; в...

Группы анаграмм в строке
Всем доброго времени суток. Я в С++ начинающий. Есть задача, которую не получается написать; не...

Комбинаторика, количество анаграмм
Здравствуйте, решаю задачу, но не знаю какой цикл использовать и как его задать. Суть задачи...

23
16.10.2011, 13:19
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
16.10.2011, 13:19
Помогаю со студенческими работами здесь

Вычислить количество слов анаграмм (Слова которые состоят из одних и тех же букв)
Дано предложение, необходимо посчитать количество анаграмм в этом предложении. Пример: Ввод:...

Поиск анаграмм в файле
Здравствуйте! Такая задача: Есть входной текстовой файл, в нем слова(какие попало и написаны как...

Расшифровка анаграмм
Пишу программу, расшифрующую анаграммы для примера взял несколько слов, но программа выводит лишние...

Подсчет количества анаграмм
Здравствуйте! Помогите решить задачу на паскале! С клавиатуры вводится слово, состоящее из...

0
Новые блоги и статьи
Что такое хорошо и что такое плохо, вид сбоку. Индивид и общество - грань не нарушения.
Hrethgir 18.01.2025
В моей личной жизни и времени, я рассуждаю категорией "хуже-лучше", в том плане, когда меня спросили например - "а зачем ты делаешь свой процессор?", то я ответил - "чтобы сделать свою жизнь лучше". . .
Передача по ссылке или по значению в Java?
InfoMaster 18.01.2025
В мире программирования на Java одним из ключевых аспектов, требующих глубокого понимания, является механизм передачи параметров в методы. Этот фундаментальный концепт часто становится источником. . .
Тернарный условный оператор в Python
InfoMaster 18.01.2025
В мире программирования существует множество инструментов и конструкций, позволяющих создавать эффективный и лаконичный код. Одним из таких инструментов является тернарный условный оператор, который. . .
Как удалить неотслеживаемые файлы из рабочего дерева Git
InfoMaster 18.01.2025
В процессе разработки программного обеспечения с использованием системы контроля версий Git часто возникает необходимость в управлении неотслеживаемыми файлами. Неотслеживаемые файлы (untracked. . .
Что делает код if __name__ == "__main__": в Python
InfoMaster 18.01.2025
В мире программирования на Python существует множество важных концепций, и одной из наиболее интересных является конструкция if __name__ == "__main__". Эта специальная конструкция играет ключевую. . .
Как заставить Git забыть об отслеживаемом файле, добавленном в .gitignore
InfoMaster 18.01.2025
В мире разработки программного обеспечения система контроля версий Git стала неотъемлемой частью рабочего процесса, позволяя эффективно отслеживать изменения в коде и управлять ими. Однако. . .
Что означает use strict в JavaScript и для чего используется
InfoMaster 18.01.2025
В мире современной веб-разработки JavaScript играет ключевую роль как один из основных языков программирования. По мере его эволюции возникла необходимость в механизмах, которые помогли бы. . .
Как работать со скрытыми (hidden) элементами в jQuery
InfoMaster 18.01.2025
В современной веб-разработке управление видимостью элементов на странице является одним из ключевых аспектов создания интерактивных пользовательских интерфейсов. jQuery предоставляет мощный набор. . .
Как переключаться между ветками (Branch) с помощью checkout в Git
InfoMaster 18.01.2025
Ветки в Git являются одной из ключевых концепций для управления версионностью кода, позволяя разработчикам эффективно работать в команде и параллельно развивать программные проекты. Каждый новый. . .
Что такое стек и куча, чем они отличаются и где находятся
InfoMaster 18.01.2025
Понимание основных концепций памяти в программировании В мире современного программирования эффективное управление памятью играет ключевую роль в создании производительных и надежных приложений. . . .
Как использовать комментарии в JSON
InfoMaster 18.01.2025
JSON (JavaScript Object Notation) представляет собой легкий и широко используемый формат обмена данными, который стал стандартом де-факто для веб-приложений и программных интерфейсов. При работе с. . .
Как заставить git pull перезаписать локальные файлы в Git
InfoMaster 18.01.2025
Проблема перезаписи локальных файлов в Git При работе с системой контроля версий Git разработчики часто сталкиваются с ситуацией, когда необходимо синхронизировать локальный репозиторий с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru