Problem
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.
Einschränkungen
1 ≤ size ≤ 50
Beispiele
Eingabe:
size = 4
Erwartete Ausgabe:
expected = ["****", "* *", "* *", "****"]
Eingabe:
long long size = 4;
Erwartete Ausgabe:
std::vector<std::string> expected = {"****", "* *", "* *", "****"};
Eingabe:
long size = 4;
Erwartete Ausgabe:
string[] expected = new string[] {"****", "* *", "* *", "****"};
Erläuterung
Rows are "****", "* *", "* *", "****".
Eingabe:
size = 1
Erwartete Ausgabe:
expected = ["*"]
Eingabe:
long long size = 1;
Erwartete Ausgabe:
std::vector<std::string> expected = {"*"};
Eingabe:
long size = 1;
Erwartete Ausgabe:
string[] expected = new string[] {"*"};
Erläuterung
A 1×1 square is a single "*".
So gehst du vor
Versuch es zuerst allein und öffne dann einen Hinweis nach dem anderen.
Hinweis 1
Der Rand wird gefüllt, das Innere bleibt leer.
Hinweis 2
Behandle die erste und letzte Zeile anders als die mittleren Zeilen.
Hinweis 3
Bei Größe 1 ist die einzige Zelle gleichzeitig Rand und Ecke, also muss sie gefüllt sein.
Erwartete Komplexität
Zeit O(size^2), zusätzlicher Speicher O(size^2)
Referenzen
Diese Aufgabe wurde für CodeUtility angepasst. Beachte die oben genannten Vorgaben und Einschränkungen.