برنامه نویسی

Codewars – اگر یک عنصر بیش از n بار رخ دهد، موارد را حذف کنید

سلام.

ری هینو می گوید بنجور

من چالش های Codewars و روند فکرم را در این مجموعه پست می کنم. من در صورت امکان از JS و Node 18 استفاده می کنم. فقط برای شفافیت، من از آنها استفاده منصفانه می کنم.

“حذف وقوع یک عنصر اگر بیش از n بار رخ دهد”. در اصل، قطعات را در وسط آرایه، بدون تغییر ترتیب، برش دهید.

function deleteNth(arr,n){
  let counter = {"top": n , "undef": 0};

  for (let i = 0 ; i < arr.length ; i++ ){
    (counter[arr[i]]) ? null : counter[arr[i]] = 0;
    if (counter[arr[i]] < n){
      counter[arr[i]]++;
    } 
    else {
      arr[i] = undefined;
      counter.undef++;
    }
  }

  arr.sort((a,b) => 0);

  for (let i = 0 ; i < counter.undef ; i++){
    arr.pop();
  }

  return arr;
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کار می کند. نیاز به بازسازی دارد زیرا به وضوح از هیچ شیوه خوبی پیروی نمی کند، اما من به چالش بعدی می روم.

مراقب باشید. آب بنوشید 💧💧💧 .

قبلی

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا