Найти в Дзене
Друзья, публикуем эталонное простое решение (O(n), один проход
Друзья, публикуем эталонное простое решение (O(n), один проход): def compress(s: str) -> str: if not s: return s res = [] count = 1 for i in range(1, len(s)): if s[i] == s[i - 1]: count += 1 else: res.append(s[i - 1] + str(count)) count = 1 # последний блок res.append(s[-1] + str(count)) compressed = "".join(res) return compressed if len(compressed) < len(s) else...
1 неделю назад
🧠 Задача: “Сжатие строки
” Дана строка s. Сжать её: заменить подряд идущие одинаковые символы на символ + количество повторов. 👉 Если результат не короче исходной строки — вернуть оригинал. Примеры: "aaabbc" → "a3b2c1" "abcd" → "abcd" "heyyyy" → "h1e1y4" Условия: O(n) строка до 10^6 символов Реализовать: compress(s: str)...
1 неделю назад
Если нравится — подпишитесь
Так вы не пропустите новые публикации этого канала