Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مسارات الشبكة

جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 64 من 64.

challenge icon

التحدي

صعب

أكمل count_paths(grid). المصفوفة grid هي مصفوفة من 0 (خلايا مفتوحة) و1 (جدران). يبدأ المسار من الخلية العلوية اليسرى، وينتهي عند الخلية السفلية اليمنى، ويتحرك إلى اليمين أو إلى الأسفل فقط، ولا يدخل أي جدار. أعد سطرين: Paths: مع عدد المسارات المختلفة، وSteps: مع عدد الحركات في أي مسار (جميع المسارات لها الطول نفسه)، أو Steps: none عندما لا يوجد مسار.

أنشئ مصفوفة ways بالحجم نفسه، حيث تحتوي كل خلية على عدد المسارات التي تصل إليها: تحصل الخلية المفتوحة على مجموع الخلية الموجودة أعلاها والخلية الموجودة إلى يسارها، بينما تحصل الخلية التي تمثل جدارًا على 0.

يقرأ الكود المُقدَّم الشبكة من سطر واحد: تُفصل الصفوف باستخدام ;، وتُفصل قيم الصف باستخدام ,. ويطبع كل سطر مُعاد.

جرّب بنفسك

count_paths <- function(grid) {
  # اكتب كودك هنا
  c("Paths: 0", "Steps: none")
}

# كود الإدخال/الإخراج المُزوَّد: أبقه كما هو
input <- suppressWarnings(readLines(file("stdin")))
rows <- strsplit(input[1], ";")[[1]]
grid <- matrix(as.numeric(unlist(strsplit(rows, ","))), nrow = length(rows), byrow = TRUE)
cat(count_paths(grid), sep = "\n")

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم R عبر الإنترنت