تابعی بنویسید که بررسی کند آیا هر صندلی می تواند استیج را ببیند یا نه. اگر عددی از عدد قبل از خود بزرگتر باشد، می تواند صحنه جلویی را ببیند.
در مثال زیر همه می توانند استیج را ببینند چون هر عدد در هر ردیف از عدد روبروی آن در ردیف قبلی بزرگتر است:
# FRONT STAGE
[[1, 2, 3, 2, 1, 1],
[2, 4, 4, 3, 2, 2],
[5, 5, 5, 5, 4, 4],
[6, 6, 7, 6, 5, 5]]
# با شروع از چپ 6 > 5 > 2 > 1, پس همه می توانند استیج را ببینند.
# 6 > 5 > 4 > 2 همینطور .
در مثال زیر همه نمی توانند استیج را ببینند:
# FRONT STAGE
[[1, 2, 3, 2, 1, 1],
[2, 4, 4, 3, 2, 2],
[5, 5, 5, 10, 4, 4],
[6, 6, 7, 6, 5, 5]]
# عدد 10 جلوی عدد 6 قرار گرفته است و جلوی دید را گرفته است.
اگر یک نفر هم نتواند استیج را ببیند تابع False برمیگرداند و اگر همه بتوانند ببینند True برگردانده می شود.
مثال ها
can_see_stage([
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]) ➞ True
can_see_stage([
[0, 0, 0],
[1, 1, 1],
[2, 2, 2]
]) ➞ True
can_see_stage([
[2, 0, 0],
[1, 1, 1],
[2, 2, 2]
]) ➞ False
can_see_stage([
[1, 0, 0],
[1, 1, 1],
[2, 2, 2]
]) ➞ False
نکات
- اعداد باید بزرگتر از عدد مقابل باشد و مساوی پذیرفته نیست
Assert.True(Backendbaz.CanSeeStage(new int[,] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } })); Assert.True(Backendbaz.CanSeeStage(new int[,] { { 0, 0, 0 }, { 1, 1, 1 }, { 2, 2, 2 } })); Assert.False(Backendbaz.CanSeeStage(new int[,] { { 2, 0, 0 }, { 1, 1, 1 }, { 2, 2, 2 } })); Assert.False(Backendbaz.CanSeeStage(new int[,] { { 1, 0, 0 }, { 1, 1, 1 }, { 2, 2, 2 } }));
پاسخ های کاربران به این تمرین
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
برای مشاهده پاسخ باید ابتدا وارد شده و قفل پاسخ را باز کنید
نظرات