Условие
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.
Ограничения
1 ≤ size ≤ 50
Примеры
Ввод:
size = 4
Ожидаемый вывод:
expected = ["****", "* *", "* *", "****"]
Ввод:
long long size = 4;
Ожидаемый вывод:
std::vector<std::string> expected = {"****", "* *", "* *", "****"};
Ввод:
long size = 4;
Ожидаемый вывод:
string[] expected = new string[] {"****", "* *", "* *", "****"};
Пояснение
Rows are "****", "* *", "* *", "****".
Ввод:
size = 1
Ожидаемый вывод:
expected = ["*"]
Ввод:
long long size = 1;
Ожидаемый вывод:
std::vector<std::string> expected = {"*"};
Ввод:
long size = 1;
Ожидаемый вывод:
string[] expected = new string[] {"*"};
Пояснение
A 1×1 square is a single "*".
Как подступиться
Сначала попробуйте сами, затем открывайте подсказки по одной.
Подсказка 1
Граница заполнена, а внутри остаётся пусто.
Подсказка 2
Первую и последнюю строки обрабатывайте иначе, чем средние.
Подсказка 3
Для размера 1 единственная ячейка одновременно и граница, и угол, значит она должна быть заполнена.
Ожидаемая сложность
время O(size^2), доп. память O(size^2)
Ссылки
Это задание адаптировано для CodeUtility. Следуйте условию и ограничениям выше.