Percorsi sulla griglia
Fa parte della sezione Logica e flusso del percorso R di Coddy. Lezione 64 di 64.
Sfida
DifficileCompleta count_paths(grid). grid è una matrice di 0 (celle libere) e 1 (muri). Un percorso inizia nella cella in alto a sinistra, termina nella cella in basso a destra, si muove solo verso destra o verso il basso e non attraversa mai un muro. Restituisci due righe: Paths: con il numero di percorsi diversi e Steps: con il numero di mosse in qualsiasi percorso (tutti i percorsi hanno la stessa lunghezza), oppure Steps: none se non esiste alcun percorso.
Crea una matrice ways delle stesse dimensioni, in cui ogni cella contiene il numero di percorsi che la raggiungono: una cella libera riceve la somma della cella sopra e di quella alla sua sinistra, mentre un muro riceve 0.
Il codice fornito legge la griglia da una riga: le righe sono separate da ; e i valori di una riga da ,. Stampa ogni riga restituita.
Provalo tu
count_paths <- function(grid) {
# Scrivi il tuo codice qui
c("Paths: 0", "Steps: none")
}
# Codice di input/output fornito: lascialo così com'è
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")
Tutte le lezioni di Logica e flusso
1Le stringhe in dettaglio
Sottostringhe con substr()Formattazione con sprintf()Dividere e unireRicerca nelle stringheSostituzione del testoRipasso - Generatore di nomi utente4Matrici
Creazione di matriciIndicizzazione delle matriciRiepiloghi di righe e colonneOperazioni aritmetiche con le matriciRipasso - Schema dei posti a sedere10Flusso di controllo avanzato
La funzione switch()ifelse() vettorialerepeat e breakFunzioni ricorsiveRiepilogo - Classificatore di voti2Ricerche chiave-valore
Ricerche in vettori con nomiControllare le chiaviAggiungere e rimuovere chiaviIterare sui nomiRiepilogo - Sportello titoli5Progetto - Registro dei voti
Aggiungere studentiRegistrare i voti8Ordinamento e raggruppamento
Ordinare i vettoriOrdinare in base a una chiaveRaggruppare con split()Riepiloghi dei gruppiRipasso - Classifica3Insiemi e conteggio
Valori univociOperazioni sugli insiemiTest di appartenenzaConteggio con table()Riepilogo - Ospiti dell’evento6Le funzioni come valori
Funzioni anonimePassare funzioniRestituire funzioniClosure con statoRiepilogo - Regole di sconto9DataFrame
Creare DataFrameColonne e righeFiltrare le righeAggiungere e ordinareRiepilogo - Report delle vendite12Progetto - Gestione delle spese
Registrare le speseSpesa totaleEsercitati da solo: Compilatore R online