Rust-এর entry API দিয়ে কোনো ম্যাপের একটি নির্দিষ্ট এন্ট্রির ভেতরে দেখার একটি উপায় পাওয়া যায়। ম্যাপটি HashMap বা BTreeMap যেকোনোটি হতে পারে। এন্ট্রিটি হয় দখলকৃত, নয়তো খালি হতে পারে, আর API-টি এন্ট্রির বিষয়বস্তু পরিবর্তন করার মেথড সরবরাহ করে।
এই অনুশীলনীতে আপনি একটি HashMap এবং তার entry API মেথডগুলো ব্যবহার করে একটি সহজ অ্যালগরিদম সমস্যার সমাধান করবেন।
একটি ম্যাগাজিন আর্টিকেলের শব্দ বোঝানো &[&str], আর আপনি পাঠাতে চান এমন একটি নোটের শব্দ বোঝানো &[&str] দেওয়া থাকলে, ম্যাগাজিন থেকে শব্দ কেটে একটি চিঠিতে পেস্ট করে আপনি কি আপনার নোটটি তৈরি করতে পারবেন?
লক্ষণীয়:
আপনি শুরু করবেন নিচের স্টাব করা ফাংশন সিগনেচারটি দিয়ে:
pub fn can_construct_note(magazine: &[&str], note: &[&str]) -> bool {
todo!()
}
নিচের ইনপুটটি দিলে
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));
ফাংশনটি false রিটার্ন করে, কারণ ম্যাগাজিনে "two" শব্দটি মাত্র একবার আছে, অথচ নোটে সেটি দুবার দরকার।
নিচের ইনপুটটি সফল হবে:
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));
ফাংশনটি true রিটার্ন করে, কারণ ম্যাগাজিনে নোটের প্রয়োজনীয় সব শব্দই আছে।
Exercism-এ সাইন আপ করুন, Rust ট্র্যাকের 99টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।