ধরুন আমাদের কাছে A সংখ্যার একটি তালিকা আছে, আমাদের সমস্ত সদৃশ সংখ্যা খুঁজে বের করতে হবে এবং তাদের শেষ ঘটনাগুলি সরিয়ে ফেলতে হবে৷
সুতরাং, যদি ইনপুট হয় [10, 30, 40, 10, 30, 50], তাহলে আউটপুট হবে [10, 30, 40, 50]
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
- দেখেছি:=একটি নতুন মানচিত্র
- d:=একটি নতুন মানচিত্র
- আমি 0 থেকে সংখ্যার আকারের মধ্যে,
- করুন
- যদি nums[i] d-এ না থাকে, তাহলে
- d[সংখ্যা[i]]:=1
- অন্যথায়,
- d[সংখ্যা[i]] :=d[সংখ্যা[i]] + 1
- যদি nums[i] d-এ না থাকে, তাহলে
- i:=0
- যখন আমি <সংখ্যার আকার, কর
- n:=d[সংখ্যা[i]]
- যদি nums[i] দেখা না হয়, তাহলে
- দেখেছেন[সংখ্যা[i]]:=1
- অন্যথায়,
- দেখা হয়েছে[সংখ্যা[i]] :=দেখা[সংখ্যা[i]] + 1
- যদি n দেখা [সংখ্যা[i]] এবং n> 1 এর মত হয়, তাহলে
- সংখ্যা থেকে ith উপাদান মুছুন
- i :=i - 1
- i :=i + 1
- রিটার্ন সংখ্যা
আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -
উদাহরণ
শ্রেণির সমাধান:def solve(self, nums):দেখা={} d={} রেঞ্জে i এর জন্য(len(nums)):যদি না হয় nums[i] in d:d[nums[i]]=অন্য 1:d[সংখ্যা[i]]+=1 i=0 যখন i1:nums.pop(i) i-=1 i+=1 রিটার্ন numsob =Solution()print( ob.solve([10, 30, 40, 10, 30, 50]))
ইনপুট
<প্রে>[10, 30, 40, 10, 30, 50]আউটপুট
[10, 30, 40, 50]