بکندباز

در بازی تنیس روی میز، تقریباً همیشه صداهایی مانند “Ping!” و سپس “Pong!” شنیده می‌شود. بنابراین، اگر آخرین صدا “Pong!” باشد، یعنی بازیکن 2 برنده شده است (چون بازیکن 1 نتوانسته توپ را برگرداند).

تابعی بنویسید که یک لیست شامل “Ping!” دریافت کند و “Pong!” را بین هر عنصر “Ping!” اضافه کند. همچنین:

  • اگر win == True باشد، لیست باید با “Pong!” پایان یابد.
  • اگر win == False باشد، لیست باید با “Ping!” پایان یابد.

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

PingPong(["Ping!"], True) ➞ ["Ping!", "Pong!"]

PingPong(["Ping!", "Ping!"], False) ➞ ["Ping!", "Pong!", "Ping!"]

PingPong(["Ping!", "Ping!", "Ping!"], True) ➞ ["Ping!", "Pong!", "Ping!", "Pong!", "Ping!", "Pong!"]

نکات

  1. “Ping!” همیشه اولین عنصر است، زیرا بازیکن 1 سرویس را می‌زند.
  2. مقدار win مشخص می‌کند که لیست با “Pong!” پایان یابد یا “Ping!”.
  3. خروجی باید یک لیست از رشته‌ها باشد.

 

EXPECT_EQ(PingPong(std::vector({"Ping!"}), true), std::vector({"Ping!", "Pong!"}));
EXPECT_EQ(PingPong(std::vector({"Ping!", "Ping!"}), false), std::vector({"Ping!", "Pong!", "Ping!"}));
EXPECT_EQ(PingPong(std::vector({"Ping!", "Ping!", "Ping!"}), true), std::vector({"Ping!", "Pong!", "Ping!", "Pong!", "Ping!", "Pong!"}));

پاسخ های کاربران به این تمرین

user-qmDa
امتیاز:‌ 3468
تصحیح اتوماتیک 0 0
‎C++‎
14 بهمن 1403

برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید

نظرات

*
*

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