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

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

মধ্যম

ভূমিকা

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

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

নির্দেশনা

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

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

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

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

উদাহরণ

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

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

পরিশিষ্ট

Note

উপরের নির্দেশনাগুলো একটি শেয়ার করা রিপোজিটরির সাথে সিঙ্ক্রোনাইজ করা, যাতে সব ভাষার ট্র্যাক জুড়ে সামঞ্জস্য বজায় থাকে। এই পরিশিষ্টটি প্রয়োজন অনুযায়ী অতিরিক্ত স্পষ্টীকরণ দেয় বা নির্দেশনাগুলো পরিবর্তন করে, যাতে সেগুলো Clojure ট্র্যাকের লক্ষ্যের সাথে আরও ভালোভাবে মেলে।

Clojure ট্র্যাকের এই অনুশীলনীর ক্ষেত্রে আপনি ধরে নিতে পারেন যে ইনপুট হলো ভেক্টরের যেকোনো নেস্টেড সংমিশ্রণ, আর আউটপুট হলো একটি ভেক্টর, যেমনটি টেস্টগুলো দেখাচ্ছে। তবে এটি কোনো কঠোর বাধ্যবাধকতা নয়; আপনি স্বাধীনভাবে ধরে নিতে পারেন যে ইনপুট হলো সিকোয়েন্সিয়াল বস্তুর (লিস্ট, ভেক্টর ইত্যাদি) যেকোনো নেস্টেড সংমিশ্রণ, আর আউটপুট হলো একটি সিকোয়েন্স।

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

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

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