ง่าย 0 ข้อที่แก้แล้ว อัตราผ่าน 0%

Hollow Square

Draw the outline of a square with * characters.

สิ่งที่คุณจะได้เรียนรู้

  • วาดกรอบด้วยอักขระ
  • ตรวจแถวและคอลัมน์แรกและสุดท้าย
  • สร้างสตริงทีละแถว

โจทย์

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

ตัวอย่าง

ตัวอย่างที่ 1
อินพุต:
size = 4

ผลลัพธ์ที่คาดหวัง:
expected = ["****", "*  *", "*  *", "****"]
อินพุต:
long long size = 4;

ผลลัพธ์ที่คาดหวัง:
std::vector<std::string> expected = {"****", "*  *", "*  *", "****"};
อินพุต:
long size = 4;

ผลลัพธ์ที่คาดหวัง:
string[] expected = new string[] {"****", "*  *", "*  *", "****"};

คำอธิบาย

Rows are "****", "* *", "* *", "****".

ตัวอย่างที่ 2
อินพุต:
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 กรุณาทำตามคำชี้แจงและข้อจำกัดด้านบน

เรียนรู้จากคนอื่น

แนวทางจากชุมชน

ยังไม่มีวิธีทำที่เผยแพร่ ลองแก้โจทย์นี้เพื่อแชร์วิธีแรก