Problema
Draw a hollow square of side size: the first and last rows are all *, and the rows in between have * only at the two ends with spaces inside.
Implement hollow_square(size).
Input
size: The side length.
Output
Return the rows from top to bottom.
Restricciones
1 ≤ size ≤ 50
Ejemplos
Entrada:
size = 4
Salida esperada:
expected = ["****", "* *", "* *", "****"]
Entrada:
long long size = 4;
Salida esperada:
std::vector<std::string> expected = {"****", "* *", "* *", "****"};
Entrada:
long size = 4;
Salida esperada:
string[] expected = new string[] {"****", "* *", "* *", "****"};
Explicación
Rows are "****", "* *", "* *", "****".
Entrada:
size = 1
Salida esperada:
expected = ["*"]
Entrada:
long long size = 1;
Salida esperada:
std::vector<std::string> expected = {"*"};
Entrada:
long size = 1;
Salida esperada:
string[] expected = new string[] {"*"};
Explicación
A 1×1 square is a single "*".
Cómo abordarlo
Inténtalo primero por tu cuenta y luego abre las pistas una a una.
Pista 1
El borde va relleno, mientras que el interior queda vacío.
Pista 2
Trata la primera y la última fila de forma distinta a las filas del medio.
Pista 3
Para tamaño uno, la única celda es borde y esquina a la vez, así que debe ir rellena.
Complejidad esperada
tiempo O(size^2), espacio extra O(size^2)
Referencias
Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.