সংখ্যার অ্যারে ক্রাশ করার প্রক্রিয়াটি সংজ্ঞায়িত করা যাক। ক্রাশে আমরা অ্যারেটি বাম থেকে ডানে পড়ি। যদি এক পর্যায়ে আমরা পরপর একই দুটি উপাদানের মুখোমুখি হয়ে থাকি তবে আমরা প্রথমটি সরিয়ে ফেলি এবং দ্বিতীয়টি দ্বিগুণ করি। উদাহরণস্বরূপ, এখানে নিম্নলিখিত অ্যারে ক্রাশ করার প্রক্রিয়াটি রয়েছে
[5,2,2,3]
^
[5,2,2,3]
^
[5,2,2,3]
^
[5,4,3]
^
[5,4,3]
^
একই উপাদানটি একাধিকবার ভেঙে যেতে পারে, উদাহরণস্বরূপ, যখন পিষ্ট হয় [1,1,2]
becomes[4]
সেই অ্যারে ক্রাশ করার প্রক্রিয়াটি যখন পরিবর্তন না করে তখন আমরা একটি অ্যারেটিকে অনিবার্য বলে ডাকব। উদাহরণ হিসেবে বলা যায় [1,2,3]
এখনও [1,2,3]
চূর্ণ হওয়ার পর।
আপনার কাজটি একটি অ্যারে নেওয়া এবং এটি অনিবার্য করতে প্রয়োজনীয় ক্রাশের সংখ্যা নির্ধারণ করা determine আপনার 0 থেকে 2 32 -1 এর মধ্যে কেবল পূর্ণসংখ্যার সমর্থন দরকার support
এটি কোড-গল্ফ তাই কম বাইট ভাল হওয়ার সাথে উত্তরগুলি বাইটে স্কোর করা হবে।
পরীক্ষার মামলা
[1] -> 0
[1,1] -> 1
[2,1,1] -> 2
[4,2,1,1] -> 3
[2,2,2,1,1] -> 3
[0,0,0,0] -> 1
[4,0,0,0,4] -> 1
[4,0,0,0,0,4] -> 1
[] -> 0
0,0,0,0
কেবল কেন ছিল তা নির্ধারণের জন্য আমাকে এক সেকেন্ড লাগল 1
। এটি কোথাও স্পষ্টভাবে উল্লেখ করার একটি ধারণা হতে পারে যে আমরা এটির পুরোপুরি চূর্ণ করতে একটি অ্যারের মধ্য দিয়ে কত বার লুপ করতে হবে তার সংখ্যা গণনা করছি এবং না , যেমনটি আমি প্রথমদিকে ভেবেছিলাম, আমরা 2 টি সংখ্যা একসাথে পিষ্ট করেছিলাম তার মোট সংখ্যা।
[1,1,2,4,8]
1 বা 4 ফিরিয়ে দেওয়া উচিত ?