Kurzusok
/
Rust
Rust
/
Feladatok
/
Magazinkivágás
Magazinkivágás

Magazinkivágás

Tanulófeladat

Bevezetés

A Rust entry API egy map egyetlen bejegyzésére nyújt rálátást, amely HashMap vagy BTreeMap is lehet. A bejegyzés vagy foglalt, vagy üres, és az API metódusokat biztosít a bejegyzés tartalmának módosításához.

Utasítások

Ebben a feladatban egy HashMap-et és az entry API metódusait fogod használni, hogy megoldj egy egyszerű algoritmusproblémát.

Adott egy &[&str], amely egy magazincikk szavait tartalmazza, és egy &[&str], amely egy elküldeni kívánt üzenet szavait tartalmazza. Össze tudod állítani az üzenetedet úgy, hogy szavakat vágsz ki a magazinból, és beilleszted őket egy levélbe?

Megjegyzések:

  • Ez fizikai kivágást és beillesztést jelent; a magazinnak minden szóból legalább annyi példányt kell tartalmaznia, amennyit az üzenet megkövetel.
  • A kis- és nagybetűk számítanak; pusztán azért, mert egy magazin szavaiból raksz össze egy üzenetet, még nem jelenti azt, hogy hajlandó vagy nyelvtanilag helytelen mondatot írni.

A következő csonkolt függvényszignatúrából indulsz ki:

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

A következő bemenet esetén

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));

a függvény false-t ad vissza, mert a magazin csak egyetlen "two" példányt tartalmaz, az üzenethez viszont kettő kell belőle.

A következő bemenet sikeres lesz:

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));

A függvény true-t ad vissza, mert a magazin tartalmazza az összes szót, amelyre az üzenetnek szüksége van.

Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
Rust Exercism

Készen állsz elkezdeni a(z) Magazinkivágás feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Rust nyelvet 99 feladat segítségével, valódi emberi mentorálással, mindez ingyen.