مسارات الشبكة
جزء من قسم المنطق وتدفق التنفيذ في رحلة R على Coddy. الدرس 64 من 64.
التحدي
صعبأكمل 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")
جميع دروس المنطق وتدفق التنفيذ
1السلاسل النصية بعمق
السلاسل الفرعية باستخدام substr()التنسيق باستخدام sprintf()التقسيم والضمالبحث في السلاسل النصيةاستبدال النصوصمراجعة - منشئ اسم المستخدم4المصفوفات
إنشاء المصفوفاتفهرسة المصفوفاتملخصات الصفوف والأعمدةالحساب على المصفوفاتمراجعة - مخطط المقاعد2استرجاع القيم باستخدام المفاتيح
البحث في المتجهات المُسمّاةالتحقق من المفاتيحإضافة المفاتيح وإزالتهاالتكرار عبر الأسماءمراجعة - مكتب الأسهمتدرّب بنفسك: مترجم R عبر الإنترنت