Если задано целое число k и либо блок текста, либо двумерный массив, в котором внутренние массивы могут иметь неодинаковую длину (что напоминает блок текста), поверните каждый символ или элемент в k-м столбце вверх или вниз до следующей позиции это существует.
пример
Поверните 20-й столбец следующего текста (на основе 1):
A line with more than k characters.
A longer line with more than k character.
A short line.
Rotate here: ------v--
This is long enough.
This is not enough.
Wrapping around to the first line.
Выход:
A line with more thtn k characters.
A longer line with aore than k character.
A short line.
Rotate here: ------m--
This is long enoughv
This is not enough.
Wrapping around to .he first line.
Вращение k-го столбца того же ввода, где 35 < k <42, приведет к неизменности введенного текста.
правила
- Вы можете использовать необработанный текст, массив строк, двумерный массив символов или любой разумный формат для представления данных. Вы также можете использовать типы данных, отличные от символов.
- Число возможных значений типа данных элементов должно быть не менее 20, если от этого зависит длина вашего кода, в противном случае - не менее 2. Это может быть подмножество символов или других значений, поддерживаемых в собственном типе.
- Пробелы и любые нулевые значения являются обычными значениями, если вы разрешите их вводить. Вы также можете просто исключить их в типе элемента.
- Изменение правила: вам разрешается заполнять более короткие массивы общим значением по умолчанию (например, пробелами), если вы предпочитаете использовать массивы одинаковой длины для хранения данных.
- k может быть 0 или 1. Гарантируется, что он находится внутри самой длинной строки на входе (подразумевается, что на входе есть хотя бы одна непустая строка).
- Вы можете выбрать, будет ли он вращаться вверх или вниз.
- Либо просто поверните одну позицию, либо поверните n позиций, где n - положительное целое число, указанное во входных данных.
- Самый короткий код выигрывает.