Die Entry-API von Rust bietet eine Sicht auf einen einzelnen Eintrag in einer Map, die entweder ein HashMap oder ein BTreeMap sein kann.
Der Eintrag kann entweder belegt oder frei sein, und die API bietet Methoden, um den Inhalt des Eintrags zu ändern.
In dieser Übung verwendest du eine HashMap zusammen mit den Methoden der Entry-API, um ein einfaches Algorithmusproblem zu lösen.
Gegeben sind &[&str] für die Wörter eines Zeitschriftenartikels und &[&str] für die Wörter einer Notiz, die du verschicken möchtest. Kannst du deine Notiz zusammenstellen, indem du Wörter aus der Zeitschrift ausschneidest und sie in einen Brief klebst?
Hinweise:
Du beginnst mit der folgenden vorgegebenen Funktionssignatur:
pub fn can_construct_note(magazine: &[&str], note: &[&str]) -> bool {
todo!()
}
Mit der folgenden Eingabe
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, ¬e));
gibt die Funktion false zurück, weil die Zeitschrift nur ein einziges "two" enthält, die Notiz aber zwei davon benötigt.
Die folgende Eingabe funktioniert:
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, ¬e));
Die Funktion gibt true zurück, weil die Zeitschrift alle Wörter enthält, die die Notiz benötigt.
Melde dich bei Exercism an, um Rust mit 99 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.