Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 03.05.2020
Сообщений: 12

Исправить стандартный словарь на свой

25.12.2020, 11:28. Показов 504. Ответов 1

Студворк — интернет-сервис помощи студентам
Помогите исправить, стандартный словарь на написанный
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
#include <iostream>
 #include <string>
 #include <map>
 int palindrome_substr( std::string str )
 {
    std::map<std::string, int> hash_table;
    int n = str.size();
    // Вспомогательный массив для хранения радиусов найденных палиндромов, одна строка для палиндромов чётной длины, другая для нечётной
    int T[2][n + 1];
    // Расширим исходную строку для предотвращения выхода за её пределы в процессе поиска
    str = "@" + str + "#";
 
        for ( int j = 0; j <= 1; j++ )
        {
           int rp = 0;    // радиус палиндрома
           T[j][0] = 0;
           int i = 1;
               while ( i <= n )
               {
                      // Пытаемся расширить палиндром из позиции i как центра
                      while ( str[i - rp - 1] == str[i + j + rp] )
                            rp++;
                  T[j][i] = rp;
                  int k = 1;
                      while ( (T[j][i - k] != rp - k) && (k < rp) )
                      {
                         T[j][i + k] = std::min( T[j][i - k], rp - k );
                         k++;
                      }
                   rp = std::max( rp - k, 0 );
                   i += k;
                }
         }
    str = str.substr( 1, n );
    // Вставка всех найденных палиндромов и однобуквенных строк в хэш-таблицу:
    hash_table[ std::string( 1, str[0] ) ] = 1;
        for (int i = 1; i <= n; i++ )
        {
             for ( int j = 0; j <= 1; j++ )
                 for (int rp = T[j][i]; rp > 0; rp-- )
                     hash_table[ str.substr(i - rp - 1, 2 * rp + j) ] = 1;
           hash_table[ std::string(1, str[i]) ] = 1;
        }
    // Вывод самих палиндромов
    std::map<std::string, int>::iterator  iter;
        for ( iter = hash_table.begin(); iter != hash_table.end(); ++iter )
            std::cout << (*iter).first << std::endl;
 
    return hash_table.size() - 1;
 }
 int main()
 {
    std::string str = "aba gfd hyf gfdfg";
    std::cout << "Строка: '" << str << "' \n";
    int number = palindrome_substr( str );
    std::cout << "\nКоличество палиндромов в строке: "
              << number << std::endl;
    return 0;
 }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.12.2020, 11:28
Ответы с готовыми решениями:

Как заменить стандартный toolbar на свой?
Как заменить стандартный toolbar на свой? Вот мой проект: https://bitbucket.org/MaximMarshev/todo/downloads/

Свой словарь
Правильно ли я понимаю, что свой словарь создается примерно так: type KeyValue&lt;TKey, TValue&gt; = class Key: TKey; ...

Как добавить свой параметр в стандартный метод KeyPress
Имееется код: Private Sub TextBox4_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles...

1
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
25.12.2020, 11:49
Цитата Сообщение от Pyulyae Посмотреть сообщение
Помогите исправить, стандартный словарь на написанный
Ты можешь заменить std::map<std::string, int> массивом std::vector<std:: pair<std::string, int>>. Перед вставкой просто искать нужный элемент. Либо при помощи std::lower_bound, либо не заморачиваться с сортировкой и воспользоваться обычным перебором std::find_if
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.12.2020, 11:49
Помогаю со студенческими работами здесь

Использовать свой интерфейс команды или стандартный джавовский?
Здравствуйте. Возникло недопонимание с руководителем в следующем вопросе: я реализовывал локигу синхронизации с сервером, для этого создал...

Как создать свой словарь
помогите создать свой словарь на любой язык. спс

В очередной раз запорола свой xlb-файл, открыв стандартный
В очередной раз запорола свой xlb-файл, открыв стандартный. Подскажите, кто знает, сохраняется ли его резервная копия, и если да, то с...

Чем в linux создать свой словарь паролей?
Всем здравия. Подскажите, как сгенерировать свой словарь паролей в linux по заданным параметрам? Я знаю, что это долго, проц будет...

Django как добавить СЛОВАРЬ в свой(или во вьюшкин) контекст?
собсно. Django 1.10 Хочу &quot;обсчитать&quot; некоторые штуки по моделям и использовать их в шаблонах, но так чтобы обсчеты были не в каждой...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru