>>229694245 Код есть, просто нужно своим языком объяснить, а у меня только вторая пара была по питону и немного сложно описать алгоритм, так как некоторые моменты не совсем понимаю.
Бежим по файлу из начала в конец, включен счетчик. Находим символ, сразу проверяем следующий. Если он другой, то увеличиваем счетчик на единицу. Если такой же - пишем значение из счетчика и символ в массив, обнуляем счетчик, сравниваем дальше.
Затем отсортировать массив по значению и выдать пару "значение-символ".
>>229693562 (OP) Ебаная формулировка. Если файл заполнен бесконечно повторяющейся последовательностью "xyz", то *каждый" символ имеет отличающихся соседей, а ответ всегда будет: 10^6-2. Это максимальное число символов, удовлетворяющих условию.
>>229694649 Удваиваю. При этом судя по ответам ОПа, подразумевается формулировка "напишите программу, которая найдёт длину такой последовательности в выданном файле" ух бля, аж школу вспомнил с её кривыми задачами
>>229695110 Но в условии ничего не сказано о входящей конфигурации, помимо ее технических ограничений!
Православным решением будет написать генератор всех уникальных комбинаций 10^6 символов, после чего итерировать твоим алгоритмом по ним и возвращать максимальный результат, чего от тебя и требуют в задаче. А так как ответ детерминирован независимо от условий, то дальше идёт упрощение алгоритма, и финальная версия выглядит вот так:
>>229694221 Помещаем файл в массив, если второй элемент массива не ровняется элементу до него и после, то проверяем есть ли он в словаре, если есть, то увеличиваем число этой последовательности на 1, если нету, то записываем как новое значение. Увеличиваем счётчик цикла на 2
>>229694466 Выкинь из головы имена переменных типа m, k, и других непонятных, абстрактных, переменных. Если переменная содержит массив, то так её и называй массив_чегото, а вообще переводись нахуй из шараги, где сначала питон изучают. Он слишком абстрактный и тебе будет больно изучать те же плюсы.
>>229696132 Да препод старенький, а так два языка подходят для решения задач по ЕГЭ. Так что питон еще не самый плохой вариант. Да и прост в освоении в целом
>>229696246 Ах, да ты же ещё маленькая писечка! Ты на егэ выбрал информатику или как? Просто пара может быть и колледже\институте, а "пара" может быть и в школе, а это по сути всего 2 урока подряд
Смотри, создаешь переменную Ans в ней будет хранится ответ на задачу и переменную tmp в ней будешь хранить промежуточный результат изначально 0;
Строка символов - это массив. Ты идешь по этой строке циклом от 1 индекса(не нулевого!) массива до предпоследнего(чтобы небыло выхода за границы массива) и смотришь выполняется ли следующее условие:
значение в массиве по индексу минус один не равно значению по текущему индексу И не равно значению по индексу плюс один.
Пока это условие выполняется ты должен прибавлять к переменной tmp
Как только данное условие перестало выполнятся необходимо 1. Прибавить к tmp два, потому что как только предыдущее условие выполнилось строка стала равнятся 3, но к результату была прибавлена лишь единица 2. если tmp > ans записать tmp в Ans
Таким образом после выполнения данной программы в переменной Ans хранится ответ на задачу.
>>229695819 Да иди ты нахуй со своими массивами и абстракциями клоун блять "Абстрактные" переменные чаще всего общепринятые/счётчики, питон такой же по уровню абстракции как и большинство остальных языков, а массивы свои можешь себе в жопу засунуть, нахуй они никому тут не упёрлись и без них хорошо
>>229699446 >"Абстрактные" переменные чаще всего общепринятые/счётчики Ебать ты Америку открыл. Какие ты там видишь общепринятые переменны? s, m и k? Читай пожалуйста треб, перед тем, как начинать выёбываться
> питон такой же по уровню абстракции как и большинство остальных языков Спроси это у тех, кто после питона переучивается на C++ вот они с тобой не согласятся и я с тобой не соглашусь, ведь сам учил питон после плюсов
> массивы свои можешь себе в жопу засунуть, нахуй они никому тут не упёрлись и без них хорошо Ещё раз, в следующий раз прочитай тред, прежде чем начинать выёбываться
>>229700959 > Какие ты там видишь общепринятые переменны? Никаких s,m,k - счётчики. Если ты везде пишешь counterOne вместо i, то ты долбоёб > Спроси это у тех, кто после питона переучивается на C++ вот они с тобой не согласятся и я с тобой не соглашусь, ведь сам учил питон после плюсов Да мне похуй кто там со мной не согласится, объективно отличия минимальны > Ещё раз, в следующий раз прочитай тред, прежде чем начинать выёбываться Захочу буду хоть всю ночь на тебя выебываться и за щеку тебе спускать, хуле ты мне сделаешь, душнила с counterOne, counterTwo и counterThree в коммите?
>>229703249 > Счётчики чего? Вооот и я о том же. Да тебя ебёт чего что-ли? Если уж так сильно ебёт, то поднимись зенками на строчку выше. Почему я должен из-за твоего любопытства переменные как-то хитровыебанно обзывать? > Пожалею, у тебя не очень хорошая жизнь была, если ты такой агрессивный А я сам по себе добрый и безобидный, сердце у меня холодное и характер мерзкий
>>229703420 >Да тебя ебёт чего что-ли? Да, это упрощает чтение кода и его восприятие. Не зря тебе тим лид пиздюлей давал. Если код используешь только ты, то ничего, а если ты его выкладываешь в открытый доступ, то на хуй уже идёшь ты и твой говнокод.
>А я сам по себе добрый и безобидный, сердце у меня холодное и характер мерзкий Именно такими и вырастают те, над кем издевались в школе
>>229693562 (OP) хули тебе объяснять, мудаку? начинаешь читать со второго символа. как только текущий символ равен предыдущему, сбрасываешь счетчик в 1, предварительно проверяя, не стал ли он максимальным значением возврщаешь максимальное значение время - O(n), память - O(1)
>>229695819 >Если переменная содержит массив, то так её и называй массив_чегото АХАХАХАХАХА >питон слишком абстрактный АХАХАХАХАХА > не ровняется АХАХАХАХАХАХА >есть ли он в словаре АХАХАХАХАХАХА Увеличиваем счётчик цикла на 2 АХАХАХАХАХАХА
Бля, спасибо, анон. у меня такое хуевое настроение было, но благодаря тебе я смеялся 5 минут, и теперь мне заебись!
>>229694471 Массив не нужен. Значение счётчика записывается в переменную ответа и счётчик сбрасывается. При каждой записи ответа нужно проверить, что счётчик больше текущего значения в ответе. Если больше, то перезаписать В конце выполнения в переменной ответа у тебя будет максимальная длина последовательности. А массив только мешает
>>229693562 (OP) Сравниваешь текущий символ со следующим Если они не равны, то увеличиваешь счетчик на один Если равны, сравниваешь текущий счетчик с максимальной длиной Если нынешняя длина больше, переписываешь максимальное значение Обнуляешь счетчик ... profit
>>229693562 (OP) Бляяяя, как же я рот ебал пидорасов, которые составляют подобные уебанские задачи. Какое это говно имеет отношение к программированию - не понимаю. Шарагу уже 3 года как закончил, но до сих пор бомбит.
>>229705504 Ну, это же школьники. Они в краевые случаи не умеют еще. Ни про начало, ни про конец. А про тестирование адептам питона и нод.жс не рассказывают - и так сойдет.
>>229705504 Всё в порядке, будет 1. Но это на питоне. Вопрос, правда, можно ли считать это последовательностью. Технически, будет последовательность из одного символа ''
>>229705629 >Вопрос, правда, можно ли считать это последовательностью. В ТЗ про "последовательность" ни слова. Там про файл. Файл может быть пустым. Если в питоне пустой файл это файл из одного символа, то рад за вас, питонистов.
>>229705664 В тз написано "Количество идущих подряд символов, у которого соседние различны". С обычной точки зрения, если бы в файле все символы были одинаковые, то считалось бы что такое количество - 0, но мы забываем что сам символ по себе является такой последовательностью с длиной 1, а в данном случае это эквивалентно и пустой строке.
>>229705308 Ага, особенно, когда текст состоит из нуля или одного символа. Пиздец ты даун и в 2к20 не слышал про обработку ошибок. Нахуй, пидорахен, ты небо коптишь? Когда вас, ебучих гуманитариев, начнут учить логике и строгому мышлению?
>>229705968 >С обычной точки зрения, если бы в файле все символы были одинаковые, то считалось бы что такое количество - 0, но мы забываем что сам символ по себе является такой последовательностью с длиной 1, а в данном случае это эквивалентно и пустой строке. В таком случае длина строки 1, а не 0.