Track
/
Rust
Rust
/
Esercizi
/
Ritaglio di rivista
Ritaglio di rivista

Ritaglio di rivista

Esercizio di apprendimento

Introduzione

L'API entry di Rust fornisce una vista su una singola voce di una mappa, che può essere una HashMap o una BTreeMap. La voce può essere occupata o libera, e l'API fornisce dei metodi per modificare il contenuto della voce.

Istruzioni

In questo esercizio userai una HashMap, insieme ai metodi dell'entry API, per risolvere un semplice problema algoritmico.

Dati &[&str] che rappresentano le parole di un articolo di rivista e &[&str] che rappresentano le parole di una nota che vorresti inviare, riesci a comporre la nota ritagliando le parole dalla rivista e incollandole su un foglio?

Note:

  • Questo implica un ritaglio e un incollaggio fisici: la rivista deve contenere almeno tante copie di ogni parola quante ne richiede la nota.
  • Le maiuscole contano: solo perché stai incollando insieme una nota composta con le parole di una rivista non significa che tu sia disposto a essere sgrammaticato.

Partirai dalla seguente firma di funzione già predisposta:

pub fn can_construct_note(magazine: &[&str], note: &[&str]) -> bool {
    todo!()
}

Dato il seguente input

let magazine = "two times three is not four".split_whitespace().collect::<Vec<&str>>();
let note = "two times two is four".split_whitespace().collect::<Vec<&str>>();
assert!(!can_construct_note(&magazine, &note));

La funzione restituisce false perché la rivista contiene una sola occorrenza di "two", mentre la nota ne richiede due.

Il seguente input funzionerà:

let magazine = "Astronomer Amy Mainzer spent hours chatting with Leonardo DiCaprio for Netflix's 'Don't Look Up'".split_whitespace().collect::<Vec<&str>>();
let note = "Amy Mainzer chatting with Leonardo DiCaprio"
    .split_whitespace()
    .collect::<Vec<&str>>();
assert!(can_construct_note(&magazine, &note));

La funzione restituisce true perché la rivista contiene tutte le parole richieste dalla nota.

Modifica tramite GitHub Il link si apre in una nuova finestra o scheda
Rust Exercism

Vuoi iniziare Ritaglio di rivista?

Iscriviti a Exercism per imparare e padroneggiare Rust con 99 esercizi e il mentoring di persone reali, tutto gratis.