ট্র্যাক
/
Rust
Rust
/
অনুশীলনী
/
ম্যাগাজিন কাটআউট
ম্যাগাজিন কাটআউট

ম্যাগাজিন কাটআউট

লার্নিং অনুশীলনী

ভূমিকা

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, &note));

ফাংশনটি 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, &note));

ফাংশনটি true রিটার্ন করে, কারণ ম্যাগাজিনে নোটের প্রয়োজনীয় সব শব্দই আছে।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Rust Exercism

ম্যাগাজিন কাটআউট শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Rust ট্র্যাকের 99টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।