Удвоение и побитовое НЕ
Задача по программированию с проверкой онлайн
- Сложность
- Сложная
- Языки
- Python
- JavaScript
- TypeScript
- Java
- Go
- Темы
- Строки
- Математика
Даны два неотрицательных числа в двоичной записи: start и end (без ведущих нулей; ноль записан как "0"; длина до 100). За одну операцию можно:
- удвоить число — приписать справа
0(ноль остаётся нулём); - взять побитовое НЕ — инвертировать все цифры записи без ведущих нулей и отбросить появившиеся ведущие нули. Например,
0 → 1,1 → 0,11 → 0,1110 → 1,1010 → 101,101 → 10.
Верните наименьшее число операций, переводящих start в end, или -1, если это невозможно. Если start равно end, ответ 0.
Пример: "10001", "111" → 4 (НЕ: 1110, удвоить: 11100, удвоить: 111000, НЕ: 111).
Источник: Coding Competitions Archive, codejam/2021/round_1c/double_or_noting · © Google LLC · Apache-2.0 · условие переведено и дополнено
Решить онлайнБесплатно и без регистрации: пишете код в браузере и проверяете его тестами (без аккаунта — несколько задач в день).