بکندباز

یک تابع بسازید که عرض، ارتفاع و کاراکتر را به عنوان ورودی بگیرد و یک قاب عکس را به صورت یک لیست دو بعدی بازگرداند.

مثال‌

get_frame(10, 3, "*") ➞ [
  ["**********"],
  ["*        *"],
  ["**********"]
]
# قاب 10 کاراکتر عرض و 3 کاراکتر ارتفاع دارد.

نمونه ورودی و خروجی

GetFrame(4, 5, "#") ➞ [["####"], ["#  #"], ["#  #"], ["#  #"], ["####"]]

GetFrame(10, 3, "*") ➞ [["**********"], ["*        *"], ["**********"]]

GetFrame(2, 5, "0") ➞ "invalid"

نکات

  • به فاصله خالی داخل قاب توجه کنید.
  • اگر عرض یا ارتفاع 2 یا کمتر باشد (نمی‌توان چیزی داخل قرار داد)، "invalid" را برگردانید.

 

EXPECT_EQ(GetFrame(4, 5, "#"), std::vector>{{"####"}, {"#  #"}, {"#  #"}, {"#  #"}, {"####"}});
EXPECT_EQ(GetFrame(10, 3, "*"), std::vector>{{"**********"}, {"*        *"}, {"**********"}});
EXPECT_THROW(GetFrame(2, 5, "0"), std::invalid_argument);
EXPECT_EQ(GetFrame(3, 3, "0"), std::vector>{{"000"}, {"0 0"}, {"000"}});
EXPECT_EQ(GetFrame(5, 9, "Z"), std::vector>{{"ZZZZZ"}, {"Z   Z"}, {"Z   Z"}, {"Z   Z"}, {"Z   Z"}, {"Z   Z"}, {"Z   Z"}, {"Z   Z"}, {"ZZZZZ"}});
EXPECT_EQ(GetFrame(3, 3, "^"), std::vector>{{"^^^"}, {"^ ^"}, {"^^^"}});

هنوز پاسخی برای این تمرین ثبت نشده است

نظرات

*
*

تمرینات مرتبط