পটভূমি
জেলির পাটিগণিত পরমাণুগুলি স্বয়ংক্রিয়ভাবে ভেক্টরাইজ হয়। আসলে, এক্স এবং ওয়াই সংজ্ঞায়িত হয় যখনই এক্স এবং ওয়াই সংখ্যার বা রাগযুক্ত অ্যারে হয়। জেলির সোর্স কোডটি জেনেরিক ভেক্টরাইজার ব্যবহার করে এই আচরণটি প্রয়োগ করে তবে এই চ্যালেঞ্জের জন্য আমরা কেবলমাত্র পূর্ণসংখ্যা এবং নেস্টেড পূর্ণসংখ্যার অ্যারেগুলি বিবেচনা করব।
সংজ্ঞা
গভীরতা নির্ধারণ করুন এক্স যেমন 0 যদি এক্স , একটি পূর্ণসংখ্যা হিসাবে 1 যদি এটি একটি (সম্ভবত খালি) পূর্ণসংখ্যার ফ্ল্যাট অ্যারে, এবং যেমন এন +1 যদি এটা গভীরতা অন্তত একটি উপাদান রয়েছে এন এবং গভীরতা কোন উপাদান ট> এন ।
এইভাবে, 1 এর গভীরতা 0 , [] এবং [1] এবং [1, 1] গভীরতা 1 , [[], []] এবং [[1], [1]] এবং [[1]] এবং [1 ] , []] গভীরতা 2 , [1, [1, [1]]] এর গভীরতা 3 , ইত্যাদি রয়েছে etc.
অপারেশন x + y নিম্নলিখিত হিসাবে সংজ্ঞায়িত করা হয়।
যদি x এবং y এর গভীরতা 0 থাকে তবে তাদের যোগফলটি ফেরত দিন।
তাহলে এক্স এবং ওয়াই সমান কিন্তু ইতিবাচক অতল আছে, যাও recursively প্রয়োগ + + সব আইটেম এক্স এবং সংশ্লিষ্ট আইটেম Y ।
যদি x এবং y এর দৈর্ঘ্য আলাদা হয় তবে লম্বরের অ্যারের লেজটি যোগফলের অ্যারেতে যুক্ত করুন।
ফলাফলটি ফিরিয়ে দিন।
তাহলে এক্স এর গভীরতা থেকে যথাযথভাবে ছোট Y এর গভীরতা যাও recursively প্রয়োগ + + থেকে এক্স এবং সব আইটেম Y , এবং এর ফলে ফিরে যান।
বিপরীত না যদি Y এর গভীরতা থেকে যথাযথভাবে ছোট এক্স s 'এর।
উদাহরণস্বরূপ, অপারেশনটি [1, [2, 3], [4]] + [[[10, 20], [30], 40, 50], 60] বিবেচনা করুন ।
বাম আর্গুমেন্টের গভীরতা 2 , এবং ডান আর্গুমেন্টের গভীরতা 3 , তাই আমরা গণনা করি [1, [2, 3], [4]] + [[[10, 20], [30], 40, 50 ] এবং [1, [2, 3], [4]] + 60 ।
[1, [2, 3], [4]] এবং [[10, 20], [30], 40, 50] উভয়ের গভীরতা 2 , তাই আমরা 1 + [10, 20] , [2, 3] গণনা করব + [30] এবং [4] + 40 ।
1 + [10, 20] = [1 + 10, 1 + 20] = [11, 21]
[2, 3] + [30] = [2 + 30, 3] = [32, 3]
মনে রাখবেন যে 3 টি অপরিচ্ছন্ন রয়ে গেছে, যেহেতু এটির সাথে কোনও মিল নেই।
[৪] + ৪০ = [৪ + ৪০] = [৪৪]
50 তাই ফলাফল, একটি মানানসই উপাদান নেই [[[11, 21], [32, 3], [44] 50]] ।[1, [2, 3], [4]] + 60 = [1 + 60, [2, 3] + 60, [4] + 60] = [61, [2 + 60, 3 + 60], [ 4 + 60]] , [61, [62, 63], [64]] এর ফলস্বরূপ ।
চূড়ান্ত ফলাফলটি [[[11, 21], [32, 3], [44], 50], [61, [62, 63], [64]]] ।
কার্য
একটি প্রোগ্রাম বা একটি ফাংশন লিখুন যা দুটি পূর্ণসংখ্যার, দুটি নেস্টেড অ্যারে বা এর সংমিশ্রণটিকে ইনপুট হিসাবে গ্রহণ করে এবং উপরে বর্ণিত হিসাবে তাদের যোগফল প্রদান করে।
যদি আপনার ভাষায় একাধিক অ্যারে-জাতীয় ধরণের (তালিকাগুলি, টিপলস, ভেক্টর ইত্যাদি) থাকে তবে আপনি নিজের উত্তরের জন্য সেগুলির মধ্যে যে কোনও একটি চয়ন করতে পারেন। রিটার্ন টাইপটি অবশ্যই যুক্তির ধরণের সাথে মেলে।
বিরক্তিকর এবং অপরাজেয় সমাধানগুলি রোধ করতে, যদি কোনও ভাষার অন্তর্নির্মিত হিসাবে এই সঠিক অপারেশন থাকে তবে আপনি সেই ভাষাটি ব্যবহার করতে পারবেন না।
অন্যান্য সমস্ত ভাষার সমস্ত বিল্ট-ইন অনুমোদিত। যদি আপনার পছন্দের ভাষা এটির অনুমতি দেয় তবে আপনি বিল্ট-ইন সংযোজন অতিরিক্ত ওভারলোড এবং / বা পুনরায় সংজ্ঞায়িত করতে পারেন।
এটি কোড-গল্ফ , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।
পরীক্ষার মামলা
0 + 0 = 0
[-1, 0, -1] + [1] = [0, 0, -1]
[] + [0] = [0]
[] + 0 = []
[] + [] = []
[[], 0] + [] = [[], []]
[1, 2, 3] + 10 = [11, 12, 13]
[1, 2, 3] + [10] = [11, 2, 3]
[1, 2, 3] + [10, [20]] = [[11, 12, 13], [21, 2, 3]]
[1, 2, 3, []] + [10, [20]] = [11, [22], 3, []]
[1, [2, [3, [4]]]] + [10, [20]] = [[11, [21]], [[12, [22]], [13, [24]]]]
আরও পরীক্ষার কেস উত্পন্ন করতে আপনি এই জেলি প্রোগ্রামটি ব্যবহার করতে পারেন ।