Бесплатный урок с нашим репетитором!

Узнать подробнее

Новая Школа - онлайн-школа подготовки к ЕГЭ
При поддержке
Посмотреть все вопросы нейросети
Бесплатный пробный урок с репетитором

Узнай больше про репетиторов Новой Школы и запишись на бесплатный пробный урок. Мы проверим твой уровень знаний и составим план обучения по любому предмету и классу

Вопрос от Анонимного юзера 23 октября 2025 09:14

Ограничение по времени: 1 секунда Ограничение по памяти: 256 мегабайт Вы разрабатываете препроцессор текста для языковой модели. Пользователи иногда тянут буквы, например: coooool, уаааау. Перед обучением модели и при обработке пользовательских сообщений такие повторения нужно нормализовать: каждая подряд идущая серия одинаковых символов должна иметь длину не больше К. По заданным K и строке S (состоящей из латинских букв) получите строку S', в которой длина каждой максимальной серии одинаковых символов не превосходит К. Не меняйте порядок символов и не удаляйте серии полностью. Формат входных данных Первая строка содержит натуральное число К > 1. Вторая строка содержит строку S из латинских букв (A..Z, а.2). Формат выходных данных Выведите исправленную строку. Ввод Вывод 2 uraaSuperr uraaaaSuperrr Код 1 Python 3 v

Ответ нейросети

23 октября 2025 09:14

Решение на Python 3

Идея:

  • пройти по строке и для каждого максимального блока одинаковых символов длиной L записать min(L, K) копий этого символа.
  • таким образом каждый блок имеет длину не более K, порядок символов не меняется.

Код:

import sys

def main():
    # читаем пару строк: сначала K, затем S
    lines = [line.strip() for line in sys.stdin if line.strip() != ""]
    if len(lines) < 2:
        return
    k = int(lines[0])
    s = lines[1]

    res = []
    i = 0
    n = len(s)
    while i < n:
        ch = s[i]
        j = i
        while j < n and s[j] == ch:
            j += 1
        run_len = j - i
        take = run_len if run_len <= k else k
        res.append(ch * take)
        i = j

    print(''.join(res))

if __name__ == "__main__":
    main()

Пример:

  • Ввод: 2 ur aa S u p e rr (без пробелов в реальном вводе: "uraaSuperr")
  • Вывод: uraaSuperr

Примечание:

  • В примере из условия, где ввод "2\nuraaSuperr", корректный результат по этому алгоритму будет "uraaSuperr". Если в тестах ожидалось иное поведение, возможно в примере допущена ошибка в описании.

Задай свой вопрос

Напиши любую задачу или вопрос, а нейросеть её решит

Похожие вопросы 15

Бесплатно Мобильное приложение ГДЗ
Мобильное приложение ГДЗ

Задавай вопросы искуcственному интеллекту текстом или фотографиями в приложении на iPhone или Android

qr-codegoogle-playapp-store

Саша — ассистент в телеграмме

Ограничение по времени: 1 секунда Ограничение по памяти: 256 мегабайт Вы разрабатываете препроцессор текста для языковой модели. Пользователи иногда тянут буквы, например: coooool, уаааау. Перед обучением модели и при обработке пользовательских сообщений такие повторения нужно нормализовать: каждая подряд идущая серия одинаковых символов должна иметь длину не больше К. По заданным K и строке S (состоящей из латинских букв) получите строку S', в которой длина каждой максимальной серии одинаковых символов не превосходит К. Не меняйте порядок символов и не удаляйте серии полностью. Формат входных данных Первая строка содержит натуральное число К > 1. Вторая строка содержит строку S из латинских букв (A..Z, а.2). Формат выходных данных Выведите исправленную строку. Ввод Вывод 2 uraaSuperr uraaaaSuperrr Код 1 Python 3 v
Решение на Python 3 Идея: - пройти по строке и для каждого максимального блока одинаковых символов длиной L записать min(L, K) копий этого символа. - таким образом каждый блок имеет длину не более K, порядок символов не меняется. Код: ```python import sys def main(): # читаем пару строк: сначала K, затем S lines = [line.strip() for line in sys.stdin if line.strip() != ""] if len(lines) < 2: return k = int(lines[0]) s = lines[1] res = [] i = 0 n = len(s) while i < n: ch = s[i] j = i while j < n and s[j] == ch: j += 1 run_len = j - i take = run_len if run_len <= k else k res.append(ch * take) i = j print(''.join(res)) if __name__ == "__main__": main() ``` Пример: - Ввод: 2 ur aa S u p e rr (без пробелов в реальном вводе: "uraaSuperr") - Вывод: uraaSuperr Примечание: - В примере из условия, где ввод "2\nuraaSuperr", корректный результат по этому алгоритму будет "uraaSuperr". Если в тестах ожидалось иное поведение, возможно в примере допущена ошибка в описании.