|
0 / 0 / 0
Регистрация: 16.08.2022
Сообщений: 2
|
|
Задача на поиск подстроки16.08.2022, 10:33. Показов 6147. Ответов 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
Префикс-функция. Задача на поиск подстроки
Поиск подстроки внутри данной строки, замена найденной подстроки на другую строку Произвести поиск подстроки, если такой подстроки нет, то данную подстроку ввести в начало исходной строки Поиск подстроки в строке и вывод подстроки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Отправка уведомления на почту при изменении наименования справочника
Maks 25.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 25.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 23.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|