ট্র্যাক
/
Pharo
Pharo
/
অনুশীলনী
/
অ্যারে ফ্ল্যাট করা
অ্যারে ফ্ল্যাট করা

অ্যারে ফ্ল্যাট করা

সহজ

ভূমিকা

জরুরি সরবরাহের একটি চালান এসে পৌঁছেছে, কিন্তু একটি সমস্যা আছে। ক্ষতি থেকে রক্ষা করতে জিনিসপত্রগুলো, অর্থাৎ টর্চলাইট, প্রাথমিক চিকিৎসার কিট আর কম্বল, বাক্সের ভেতরে ভরে রাখা আছে, আর সেই বাক্সগুলোর কয়েকটি আবার অন্য বাক্সের ভেতরে কয়েক স্তর গভীরে নেস্টেড!

জরুরি অবস্থার জন্য প্রস্তুত থাকতে হলে সব কিছু একটি বাক্সেই সহজে হাতের নাগালে থাকতে হবে। আপনি কি সব সরবরাহ খুলে একটি বাক্সে ভরে দিতে পারবেন, যাতে সবচেয়ে বেশি প্রয়োজন হলে সেগুলো প্রস্তুত থাকে?

নির্দেশনা

যেকোনো গভীরতার একটি নেস্টেড অ্যারে নিন এবং সম্পূর্ণ ফ্ল্যাট করা একটি অ্যারে রিটার্ন করুন।

লক্ষ্য করুন, কিছু প্রোগ্রামিং ভাষার ট্র্যাকে ইনপুট অ্যারেতে null-এর মতো মান থাকতে পারে, আর এই মানগুলো কীভাবে দেখানো হয় তা ট্র্যাকভেদে আলাদা। এমন মান ফ্ল্যাট করা অ্যারে থেকে বাদ দেওয়া উচিত।

এছাড়াও, ট্র্যাক অনুযায়ী ইনপুট ভিন্ন ডেটা টাইপের হতে পারে এবং ভিন্ন ভিন্ন টাইপ থাকতে পারে।

বিস্তারিত জানতে টেস্ট স্যুট দেখুন।

উদাহরণ

ইনপুট: [1, [2, 6, null], [[null, [4]], 5]]

আউটপুট: [1, 2, 6, 4, 5]

নোট

বিল্ট-ইন ফ্ল্যাটেনিং মেথড ব্যবহার না করে আপনি নিজের একটি মেথড তৈরি করতে পারেন, তবে কোনটি কালেকশন আর কোনটি নয়, সেটি আলাদা করে চিনতে হবে। বিকল্পভাবে, যদি আপনি বিল্ট-ইন ফ্ল্যাটেনিং মেথডগুলো ব্যবহার করার সিদ্ধান্ত নেন, তাহলে ভুল আচরণ ওভাররাইড করার জন্য আপনাকে একটি নতুন Stream টাইপ তৈরি করতে হবে।

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

অ্যারে ফ্ল্যাট করা শুরু করতে প্রস্তুত?

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