|
0 / 0 / 0
Регистрация: 16.08.2022
Сообщений: 2
|
|
Задача на поиск подстроки16.08.2022, 10:33. Показов 6139. Ответов 5
Метки нет (Все метки)
Дана строка S, состоящая из строчных и заглавных букв английского алфавита. Необходимо найти кратчайшую ее подстроку, содержащую хотя бы раз каждую букву, которая встречается в строке S. Буквы «a» и «A» считаются разными, иными словами регистр буквы важен
Подстрока строки S — это строка, состоящая из нескольких последовательных букв из строки S. Например, строки «cab», «b» и «abacaba» являются подстроками строки «abacaba», а строки «aa», «abc» - нет Входные данные В первой строке вводится целое число N (1≤N≤100000) — длина строки S Во второй строке вводится сама строка S, состоящая из строчных и заглавных букв английского алфавита Выходные данные Выведите длину кратчайшей подходящей подстроки Примеры входные данные 4 lamp выходные данные 4 входные данные 3 GgG выходные данные 2 входные данные 7 AbAcAbA выходные данные 3
0
|
|
| 16.08.2022, 10:33 | |
|
Ответы с готовыми решениями:
5
Поиск подстроки Поиск подстроки |
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||||||
| 16.08.2022, 13:01 | ||||||
Алгоритм неоптимальный, но вдруг прокатит
1
|
||||||
|
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
|
||||||
| 16.08.2022, 16:37 | ||||||
|
Red white socks,
Предлагаю небольшую оптимизацию:
1
|
||||||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||||||
| 16.08.2022, 20:01 | ||||||
|
avdivo, ну это так, слону дробина. Все равно О(N^2). Тут нужен минимум О(N log N).
Вот этот код на порядок быстрее, но он тоже квадратичный
1
|
||||||
|
4523 / 1899 / 336
Регистрация: 18.01.2021
Сообщений: 3,489
|
||||||||||||||||||||||||||
| 17.08.2022, 12:49 | ||||||||||||||||||||||||||
|
Ок. Займемся теперь расчетами.
Инициализируем тестовую строку:
Посмотрим на следующий вариант. Его сложность O(n^2), причем скорость выполнения обратно пропорциональна длине алфавита, чем больше различных символов в строке, тем быстрее выполняется расчет.
Используем SortedList. Кстати, узнал о замечательной библиотеке sortedcontainers https://grantjenks.com/docs/sortedcontainers/, так что уже время потрачено не зря)
Но самое интересное, что пока вносил изменения, то в голове появилось решение уже с обычными списками и со временем O(N)!
Вот вроде и всё. Спасибо за внимание. Добавлено через 1 час 1 минуту Ну и напоследок, очень поучительная история о слепоте и хождении по кругу) Что только не использовали для индексов) И список, и сортированный список и кучу предлагал. В конце до очереди додумался. И возникает вопрос, зачем нам здесь очередь, если можно взять обычный итератор. Но так итератор нам сразу и дает re! Просто удивительно, как готовое решение все пытался во что-то обернуть...
Не знаю, как остальные, а я очень впечатлен уроком от этой непритязательной школьной задачи.
3
|
||||||||||||||||||||||||||
|
303 / 213 / 112
Регистрация: 03.12.2016
Сообщений: 409
|
|
| 17.08.2022, 13:04 | |
|
Red white socks,
Впечатляет! Очень интересно, спасибо.
0
|
|
| 17.08.2022, 13:04 | |
|
Помогаю со студенческими работами здесь
6
Префикс-функция. Задача на поиск подстроки
Поиск подстроки внутри данной строки, замена найденной подстроки на другую строку Произвести поиск подстроки, если такой подстроки нет, то данную подстроку ввести в начало исходной строки Поиск подстроки в строке и вывод подстроки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
|
Оттенки серого
Argus19 18.03.2026
Оттенки серого
Нашёл в интернете 3 прекрасных модуля:
Модуль класса открытия диалога открытия/ сохранения файла на Win32 API;
Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
|