|
5 / 5 / 1
Регистрация: 06.10.2020
Сообщений: 176
|
||||||
Является ли одна строка циклическим сдвигом другой?16.02.2021, 20:44. Показов 7291. Ответов 37
Метки нет (Все метки)
Дано две строки. Нужно определить, является ли вторая строка циклическим сдвигом первой строки вправо. По данным строкам вывести минимальный возможный размер сдвига или, если такого сдвига не существует, -1.
входные данные a b выходные данные -1 входные данные zabcd abcdz выходные данные 4 Мой код, не проходит тесты по времени:
0
|
||||||
| 16.02.2021, 20:44 | |
|
Ответы с готовыми решениями:
37
Определить, является ли одна последовательность циклическим сдвигом другой Определить, является ли одна последовательность циклическим сдвигом другой Является ли первая строка циклическим сдвигом второй строки |
|
5 / 5 / 1
Регистрация: 06.10.2020
Сообщений: 176
|
||||||
| 18.02.2021, 22:09 [ТС] | ||||||
0
|
||||||
|
Комп_Оратор)
|
||
| 18.02.2021, 22:22 | ||
thingsom -ответ отрицателен. Мой код вроде работает - проверьте. А нулевой сдвиг это равные строки. Я не вижу смысла выражать это как-то ещё. В математике для тригонометрии, можно писать плюс-минус два пи эн для аргумента синуса. Хотите так? Не думаю.Добавлено через 6 минут thingsom короче на 1 и конечно с самого начала -1для чистоты эксперимента я добавил отброшенную 'е' в середину: theingsom это вместо thingsomработает)
0
|
||
|
5 / 5 / 1
Регистрация: 06.10.2020
Сообщений: 176
|
||||||
| 18.02.2021, 22:36 [ТС] | ||||||
|
IGPIGP, я и отправил Ваш код сначала, только отформатировал вывод под условие:
0
|
||||||
|
5 / 5 / 1
Регистрация: 06.10.2020
Сообщений: 176
|
|
| 18.02.2021, 22:52 [ТС] | |
|
IGPIGP, да
К сожалению, тесты скрыты
0
|
|
|
Комп_Оратор)
|
||||||||||||
| 18.02.2021, 23:01 | ||||||||||||
|
Я могу не пройти по памяти так как использую поиск фактически новой (дополнительной) строки:
![]() Есть одна идейка как этого избежать, но я не уверен, что это актуально. Жаль если сайт не даёт такую инфу)
0
|
||||||||||||
|
5 / 5 / 1
Регистрация: 06.10.2020
Сообщений: 176
|
|
| 18.02.2021, 23:13 [ТС] | |
|
IGPIGP, вообще ничего
Один прекрасный господин помог через z-функцию решить, но очень хочется понять, почему этот код не прошел)
1
|
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
|||||||
| 18.02.2021, 23:34 | |||||||
1, то есть строка якобы является циклическим сдвигом.
0
|
|||||||
|
Комп_Оратор)
|
||||||
| 19.02.2021, 02:13 | ||||||
|
mangomang, там и правда могут быть глюки) Я не дебажил сильно. Завтра посмотрю еще, но одна доп проверка на прилегание первого интервала из оригинала к концу смещённой строки, вроде устраняет этот баг.
0
|
||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
|||||||
| 19.02.2021, 03:17 | |||||||
substring внутри if_shifted. Но вместо того, чтобы просто проверить этот факт, мы зачем-то вызываем if_shifted.find(substring), то есть выполняем полноценный тяжеленный поиск подстроки в строке c самого начала и до самого конца. Зачем???? ![]() Даже после такого исправления работать правильно это все равно не будет именно из-за этого злосчастного if_shifted.find(substring), которое в ряде случаев будет находить первое вхождение, в то время как нам нужно последнее.--- И во всех этих муках рождается лишь банальное
1
|
|||||||
|
Комп_Оратор)
|
|||||
| 19.02.2021, 10:41 | |||||
|
Но лишь для правильных строк. А для неправильных оно может болтаться в середине состоя из произвольно меньшего количества символов чем до конца. Этот факт вы мне показали, за что и благодарю. Несмотря на любимые вами Мне пока что кажется, что оно и достаточно. Хотя так казалось и до вашего замечание. Всё началось с теста за который - спасибо mangomang) Что касается: Добавлено через 1 минуту Написание итератора, кстати - хороший путь. Но для моего случая хорош был бы реверсный (учитывая тот факт что поиск от начала менее продуктивен) . Именно тогда и в моём случае не придётся создавать одну (надежда) новую строку substring а использовать входную)
0
|
|||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||
| 19.02.2021, 10:51 | ||
substr вызывается для std::string_view (!), а не для std::string. Уже давно вся немодифицирующая работа со строками должна делаться исключительно через std::string_view. В частности, std::string_view превращает выделение поддиапазона в бесплатную операцию.
1
|
||
|
Комп_Оратор)
|
|||||
| 19.02.2021, 11:24 | |||||
|
Добавлено через 5 минут Но конструктора принимающего строку не нашёл... Чуть позже посмотрю повнимательней. Очень полезный фрукт! Добавлено через 21 минуту ![]() Поэтому, кроме создания ещё одной строки - грехов не вижу. А всё потому что строка не предоставляет поиска целевого объекта, задаваемого итераторами, как это делает общий поиск <algorithm>. Интересно было бы понять в чём тут причина, кстати? Добавлено через 1 минуту ![]() Поэтому, кроме создания ещё одной строки - грехов не вижу. А всё потому что строка не предоставляет поиска целевого объекта, задаваемого итераторами, как это делает общий поиск <algorithm>. Интересно было бы понять в чём тут причина, кстати?
0
|
|||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
||
| 19.02.2021, 11:35 | ||
|
https://en.cppreference.com/w/... tring_view
0
|
||
|
Комп_Оратор)
|
|||||||
| 19.02.2021, 20:39 | |||||||
|
вот тут всё зависит от того как данный компилятор реализует сравнение интервалов заданных итераторами строк (ой сомневаюсь, что кто-то побеспокоился) ). Не z-функции конечно, но кратко)
0
|
|||||||
|
Комп_Оратор)
|
||||||
| 20.02.2021, 20:27 | ||||||
|
Возможны также и обобщения вроде следующих:
0
|
||||||
| 20.02.2021, 20:27 | |
|
Определить, является ли одна строка символов - частью другой
Проверить, является ли строка s циклическим сдвигом строки t (или наоборот) Определить, является ли одна строка перестановкой другой
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|