网格路径
本课属于 Coddy R 学习旅程的“逻辑与流程”单元。第 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")
逻辑与流程中的所有课
自己练习: R 在线编译器