Недавно у меня был следующий вопрос на собеседовании: нам дан список слов, и мы хотим отформатировать их, чтобы максимизировать количество возвратов каретки, сохраняя при этом количество букв в строке в пределах диапазона.
Например, нам нужен диапазон от 5 до 10 (включительно) букв в строке, одно из решений таково:
hello (5) cat (3)
Другое это:
hello cat (9) <- 1 for a space
Итак, первое решение лучше, потому что у нас есть 1 возврат каретки против 0 во втором.
Если слово не помещается, оно должно быть помещено на новую строку. Например:
hello (5) people (6)
Интуитивно мне это кажется проблемой жадного алгоритма, когда мы возвращаемся, как только встречаем ограничение на минимальное количество букв в строке. Однако это кажется слишком простым, и я сейчас начинаю сомневаться в себе, но я не могу придумать контрпример, где жадность не является лучшей.