Đường đi trên lưới
Thuộc phần Logic và luồng điều khiển trong hành trình R của Coddy. Bài học 64 trên 64.
Thử thách
KhóHoàn thiện count_paths(grid). grid là một ma trận gồm các ô 0 (ô trống) và 1 (ô tường). Một đường đi bắt đầu ở ô trên cùng bên trái, kết thúc ở ô dưới cùng bên phải, chỉ di chuyển sang phải hoặc xuống dưới và không bao giờ đi vào ô tường. Trả về hai dòng: Paths: kèm số đường đi khác nhau và Steps: kèm số bước di chuyển của một đường đi bất kỳ (mọi đường đi đều có cùng độ dài), hoặc Steps: none nếu không có đường đi.
Tạo một ma trận ways có cùng kích thước, trong đó mỗi ô lưu số đường đi đến ô đó: một ô trống nhận tổng số đường đi của ô phía trên và ô bên trái, còn ô tường nhận giá trị 0.
Code được cung cấp đọc ma trận từ một dòng: các hàng được phân tách bằng ;, còn các giá trị trong một hàng được phân tách bằng ,. Code in ra từng dòng được trả về.
Tự làm thử
count_paths <- function(grid) {
# Viết code của bạn ở đây
c("Paths: 0", "Steps: none")
}
# Đoạn code đầu vào/đầu ra đã được cung cấp: giữ nguyên
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")
Tất cả bài học trong Logic và luồng điều khiển
1Chuỗi chuyên sâu
Chuỗi con với substr()Định dạng với sprintf()Tách và nối chuỗiTìm kiếm trong chuỗiThay thế văn bảnÔn tập: Tạo tên người dùng10Luồng điều khiển nâng cao
Hàm switch()ifelse() dạng vector hóarepeat và breakHàm đệ quyÔn tập: phân loại điểmTự luyện tập: Trình biên dịch R online