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