ধরুন আমাদের কাছে nums নামে একটি সংখ্যার তালিকা আছে, আমাদের সাবলিস্টের সংখ্যা খুঁজে বের করতে হবে যেখানে প্রথম উপাদান এবং শেষ উপাদান একই।
সুতরাং, যদি ইনপুটটি nums =[10, 15, 13, 10] এর মত হয়, তাহলে আউটপুট হবে 5, যেহেতু একই প্রথম এবং শেষ উপাদান সহ সাবলিস্টগুলি হল:[10], [15], [13], [ 10], [10, 15, 13, 10]।
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
num_sublist :=সংখ্যার আকার
-
d :=একটি খালি মানচিত্র
-
প্রতিটি n সংখ্যার জন্য, করুন
-
d[n] :=d[n] + 1
-
-
প্রতিটি সংখ্যার জন্য k এবং d-এ উপাদানগুলির অনুরূপ ফ্রিকোয়েন্সি v, করুন
-
যদি v 1 এর মত না হয়, তাহলে
-
num_sublists :=num_sublist +((v-1) *(v) /2)
-
-
-
num_sublist ফেরত দিন
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
সংগ্রহ থেকে ইম্পোর্ট ডিফল্টডিক্টক্লাস সমাধান:def solve(self, nums):num_sublists =len(nums) d =defaultdict(int) n-এর জন্য n-এর জন্য:d[n] +=1 k,v-এর জন্য d.items( ):if v !=1:num_sublists +=(v-1)*(v)//2 num_sublistsob =Solution()nums =[10, 15, 13, 10]print(ob.solve(nums))প্রে>ইনপুট
<প্রে>[10, 15, 13, 10]
আউটপুট
5