Это вопрос интервью из Google. Я не могу решить это сам. Может кто-то пролил свет?
Напишите программу для печати последовательности нажатий клавиш так, чтобы она генерировала максимальное количество символов "A". Вам разрешено использовать только 4 клавиши: A, Ctrl + A, Ctrl + C и Ctrl + V. Разрешены только N нажатий клавиш. Все символы Ctrl + считаются одним нажатием клавиши, поэтому Ctrl + A является одним нажатием клавиши.
Например, последовательность A, Ctrl + A, Ctrl + C, Ctrl + V генерирует два A в 4 нажатиях клавиш.
- Ctrl + A - Выбрать все
- Ctrl + C - копирование
- Ctrl + V - Вставить
Я сделал некоторую математику. Для любого N, используя x чисел A, один Ctrl + A, один Ctrl + C и y Ctrl + V, мы можем создать max ((N-1)/2) 2 количество A. Для некоторого N > M лучше использовать столько последовательностей Ctrl + A, Ctrl + C и Ctrl + V, сколько удваивает число A.
Последовательность Ctrl + A, Ctrl + V, Ctrl + C не перезапишет существующий выбор. Он добавит скопированный выбор к выбранному.