সংখ্যা ঘটনা


12

ইনপুট:

পূর্ণসংখ্যার একটি তালিকা (যা কখনই শূন্য থাকে না)

আউটপুট:

নিম্নলিখিতগুলির উপর ভিত্তি করে গণনা সহ একই আকারের একটি তালিকা:

  • যদি বর্তমান আইটেমটি নেতিবাচক হয়: এই আইটেমের আগে সমস্ত আইটেম দেখুন এবং অন্যান্য সংখ্যায় অঙ্কটি কতবার ঘটেছে তা গণনা করুন
  • পরিবর্তে বর্তমান আইটেমটি যদি ইতিবাচক হয়: এই আইটেমটির পরে সমস্ত আইটেমটি দেখুন এবং সেই অন্যান্য সংখ্যায় অঙ্কটি কতবার ঘটেছে তা গণনা করুন

একটি মোচড় রয়েছে: যদি তালিকার আকারটি এমনকি হয় তবে আমরা কেবলমাত্র প্রতিটি সংখ্যা একবারে গণনা করি (এটি যদি একাধিক সংখ্যার সাথে মেলে এমনকি) এবং আকারটি বিজোড় হয় তবে আমরা বর্তমান আইটেমটির প্রতিটি অঙ্কের জন্য সংখ্যার প্রতিটি অঙ্ক গণনা করি (নকল অঙ্কগুলি একাধিকবার গণনা করা হয়)।

এটিকে কিছুটা স্পষ্ট করার জন্য কয়েকটি উদাহরণ দেওয়া যাক:

এমনকি তালিকা সহ উদাহরণ:

Input:  [4, 10, 42, -10, -942, 8374, 728, -200]
Output: [3, 2,  4,  1,   2,    1,    1,   5   ]

তালিকার আকার সমান , সুতরাং আমরা কেবল একবারে প্রতিটি সংখ্যা গণনা করি।

  • 4: এটি ইতিবাচক, তাই আমরা প্রত্যাশিত। তিন সংখ্যার ধারণকারী সংখ্যার আছে 4( 42, -942, 8374)। সুতরাং আমরা একটি দিয়ে শুরু 3
  • 10: এটি ইতিবাচক, তাই আমরা প্রত্যাশিত। দুটি সংখ্যা রয়েছে যার মধ্যে অঙ্ক 1এবং / অথবা 0( -10, -200) থাকে containing সুতরাং দ্বিতীয় আউটপুট হয় 2
  • 42: আবার ইতিবাচক, তাই এগিয়ে। চার পারেন অঙ্ক ধারণকারী সংখ্যার আছে 4এবং / অথবা 2( -942, 8374, 728, -200)। তৃতীয় আউটপুট হয় 4
  • -10: এবার এটি নেতিবাচক, সুতরাং আমরা পিছনের দিকে তাকাই। অঙ্ক 1এবং / অথবা 0(আমরা বিয়োগ চিহ্নটি উপেক্ষা করি) ( 10) সহ কেবলমাত্র একটি সংখ্যা রয়েছে । চতুর্থ আউটপুট হয় 1
  • প্রভৃতি

বিজোড় তালিকার উদাহরণ:

Input:  [382, -82, -8, 381, 228, 28, 100, -28, -2]
Output: [13,  2,   2,  4,   8,   3,  0,   11,  6 ]

তালিকার আকার বিজোড় , তাই আমরা প্রতিটি অঙ্ক গণনা করি।

  • 382: এটি ইতিবাচক, তাই আমরা প্রত্যাশিত। সেখানে এক 3অন্য সংখ্যা (মধ্যে 381), ছয় 8'অন্যান্য সংখ্যা (মধ্যে গুলি -82, -8, 381, 228, 28, -28), এবং ছয় 2' অন্যান্য সংখ্যায় গুলি ( -82, 228, 28, -28, 2)। সুতরাং আমরা একটি দিয়ে শুরু 13
  • -82: এটা নেতিবাচক, তাই পিছনে। সেখানে এক 3অন্য নম্বর (ইন 382), এবং এক 8অন্য সংখ্যা ( 382)। সুতরাং দ্বিতীয় আউটপুট হয় 2
  • ...
  • 228: এটা ইতিবাচক, তাই এগিয়ে। তিনটি হয় 2'অন্যান্য সংখ্যা (মধ্যে গুলি 28, -28, -2), এবং অন্য তিন 2' র এবং দুটি 8'অন্যান্য সংখ্যায় গুলি ( 28, -28)। সুতরাং এই আউটপুট হয় 8
  • প্রভৃতি

চ্যালেঞ্জ নিয়ম:

  • আপনি ধরে নিতে পারেন ইনপুটটি কখনই 0আইটেম হিসাবে থাকবে না কারণ এটি ইতিবাচক বা নেতিবাচক নয়।
  • আপনি ধরে নিতে পারেন ইনপুট-তালিকায় সর্বদা কমপক্ষে দুটি আইটেম থাকবে।
  • I / O নমনীয়। ইনপুট / আউটপুট অ্যারে / পূর্ণসংখ্যার তালিকা, সীমানাঙ্কিত স্ট্রিং, অঙ্ক / অক্ষর-ম্যাট্রিক্স ইত্যাদি হতে পারে can
  • তালিকার প্রথম সংখ্যাটি যদি aণাত্মক সংখ্যা হয় বা তালিকার শেষ সংখ্যাটি ইতিবাচক সংখ্যা হয় তবে ফলাফলের তালিকায় এটি 0 হবে।
  • বিজোড় তালিকার সাথে একই অঙ্কের একাধিকবার সংখ্যার একাধিকবার গণনা করা হয়, 228যেমন উপরের বিজোড় উদাহরণে 8(3 + 3 + 2) এর পরিবর্তে 5(3 + 2) ফলাফল হয়।

সাধারাইওন রুল:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড নিয়মগুলি আপনার উত্তরের জন্য প্রযোজ্য , সুতরাং আপনাকে সঠিক পরামিতি এবং রিটার্ন-টাইপ, সম্পূর্ণ প্রোগ্রাম সহ STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, প্রয়োজনে একটি ব্যাখ্যা যোগ করুন।

পরীক্ষার কেস:

Input:  [4, 10, 42, -10, -942, 8374, 728, -200]
Output: [3, 2,  4,  1,   2,    1,    1,   5   ]

Input:  [382, -82, -8, 381, 228, 28, 100, -28, -2]
Output: [13,  2,   2,  4,   8,   3,  0,   11,  6 ]

Input:  [10, -11, 12, -13, 14, -15, 16, -17, 18, -19]
Output: [9,  1,   7,  3,   5,  5,   3,  7,   1,  9  ]

Input:  [10, -11, 12, -13, 14, -15, 16, -17, 18, -19, 20]
Output: [11, 2,   8,  4,   5,  6,   3,  8,   1,  10,  0 ]

Input:  [88, 492, -938, 2747, 828, 84710, -29, -90, -37791]
Output: [8,  9,   3,    9,    3,   4,     5,   4,   12    ]

Input:  [-1, 11, 11, 1]
Output: [0,  2,  1,  0]

Input:  [1, 11, 11, -1]
Output: [3, 2,  1,  3 ]

Input:  [-1, 11, 1]
Output: [0,  2,  0]

Input:  [1, 11, -1]
Output: [3, 2,  3 ]

উত্তর:




4

জাভা (জেডিকে 10) , 204 বাইট

a->{int l=a.length,r[]=new int[l],i=0,j,x,y,b,s,t=10;for(;i<l;i++)for(j=i+(s=a[i]>0?1:-1);0<=j&j<l;j+=s)for(b=0,x=a[i];x!=0;x/=t)for(y=a[j];b<1&y!=0;y/=t)if(x%t==-y%t|x%t==y%t){r[i]++;b+=1-l%2;}return r;}

এটি অনলাইন চেষ্টা করুন!

ক্রেডিট


[1,11,-1]ফিরে আসা উচিত [3,2,3]। এটি একটি বিজোড় তালিকা, সুতরাং সমস্ত অঙ্ক গণনা। প্রথম 1: দেখুন ফরওয়ার্ড, তিন 1মোট S: 11,-1। দ্বিতীয় 11: প্রতিটি অঙ্কের জন্য অপেক্ষা করুন: এক 1+ এক 1। তৃতীয় -1: দেখুন অনগ্রসর, তিন 1মোট S: -1,11। (বিজোড় তালিকার সাথে আপনার প্রতিটি অঙ্কের দিকে সমান লক্ষ্য করা উচিত I'll আমি চ্যালেঞ্জের মধ্যে এটি স্পষ্ট করব, তবে সংখ্যার সাথে বিজোড় উদাহরণটি এটি 228কিছুটা স্পষ্ট করে।)
কেভিন ক্রুইজসেন

@ কেভিন ক্রুজসেন এখনই ঠিক করা উচিত।
অলিভিয়ার গ্রাগোয়ার

এটা সত্যিই না। আমি ইতিমধ্যে ভীত ছিলাম যে পোস্টটি পোস্ট করার সময় প্রাথমিক ব্যাখ্যাটি কিছুটা অস্পষ্ট হতে পারে .. এখন আমি দেখতে পাচ্ছি যে আমি আপনার উত্তরের কিছু গল্ফ করতে পারি কিনা। ;)
কেভিন ক্রুইজসেন 14

1
আমার খুব বেশি সময় নেই তবে আপনি যে জিনিসটি গল্ফ করতে পারেন তা একটি নতুন ভেরিয়েবল যুক্ত করছে ,tএবং এতে পরিবর্তন i+(a[i]>0?1:-1)হচ্ছে i+(t=a[i]>0?1:-1)এবং তারপরে কেবল তার j+=tপরিবর্তে ব্যবহার করুন j+=a[i]>0?1:-1
কেভিন ক্রুইজসেন 14

1
আপনি 2 টি সংরক্ষণ করতে পারেন যদি আপনি উদাহরণ হিসাবে t = 10 ঘোষণা করেন এবং সেগুলি 10 টি প্রতিস্থাপন করুন, যদিও এটি কম বোধগম্য হবে
জাভা গঞ্জার



1

জাভাস্ক্রিপ্ট (নোড.জেএস) , 164,158,140 139 বাইট

a=>a.map((x,i)=>a.slice(x<0?0:i+1,x<0?i:l).map(b=>c+=[...b+""].map(X=>s+=X>=0&&(x+"").split(X).length-1,s=0)&&l%2?s:+!!s,c=0)|c,l=a.length)

এটি অনলাইন চেষ্টা করুন!


এটি JS6 এর মতো দেখাচ্ছে, নোড-ওয়াইয়ের মতো নয়।
চার্লস

এটি টিও উত্পাদিত স্ট্রিং। এটিতে নোড বাবেল বা স্পাইডারমোনকি জেএস রয়েছে। এটি এখনও নোডে কাজ করে তাই এর সূক্ষ্ম
ড্যানিয়েলইন্ডি


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.