Dado um número k e um bloco de texto ou uma matriz 2D que as matrizes internas possam ter comprimentos desiguais (que se assemelham a um bloco de texto), gire cada caractere ou elemento da k- ésima coluna para cima ou para baixo até a próxima posição isso existe.
Exemplo
Gire a 20ª coluna do seguinte texto (com base em 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.
Saída:
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.
Girar a k- ésima coluna da mesma entrada em que 35 < k <42 produziria o texto de entrada inalterado.
Regras
- Você pode usar texto bruto, uma matriz de linhas, uma matriz 2D de caracteres ou qualquer formato razoável para representar os dados. Você também pode usar outros tipos de dados que não caracteres.
- O número de valores possíveis do tipo de dados dos elementos deve ser pelo menos 20 se o tamanho do código depender dele, caso contrário, pelo menos 2. Esse pode ser um subconjunto dos caracteres ou outros valores suportados no tipo nativo.
- Espaços e qualquer tipo de valor nulo são apenas valores normais, se você os permitir na entrada. Você também pode simplesmente excluí-los no tipo de elemento.
- Alteração de regra: você tem permissão para preencher as matrizes mais curtas com um valor padrão genérico (como espaços), se preferir usar matrizes com comprimentos iguais para armazenar os dados.
- k pode ser baseado em 0 ou baseado em 1. É garantido que ele esteja dentro da linha mais longa da entrada (o que implica que a entrada tenha pelo menos uma linha não vazia).
- Você pode escolher se gira para cima ou para baixo.
- Apenas gire uma posição ou gire n posições onde n é um número inteiro positivo dado na entrada.
- O menor código vence.