अंक घटना


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) युक्त दो संख्याएँ हैं । तो दूसरा आउटपुट है 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 लचीला है। इनपुट / आउटपुट पूर्णांक, सीमांकित स्ट्रिंग, अंक / चरित्र-मैट्रिक्स, आदि की सरणी / सूची हो सकती है।
  • यदि सूची में पहला नंबर एक ऋणात्मक संख्या है, या सूची में अंतिम संख्या एक सकारात्मक संख्या है, तो परिणामी सूची में यह 0 होगा।
  • विषम सूचियों के साथ, कई बार एक ही अंक वाले संख्याओं को कई बार गिना जाता है, जैसे 228ऊपर दिए गए विषम उदाहरण में 8(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

जावा (JDK 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कुल तीन एस 11,-1:। दूसरा 11: प्रत्येक अंक के लिए तत्पर: एक 1+ एक 1। तीसरा -1: पीछे की ओर देखो, 1कुल में तीन एस -1,11:। (विषम सूचियों के साथ आपको प्रत्येक अंक को देखना चाहिए, यहाँ तक कि समान भी। मैं इसे चुनौती में स्पष्ट करूँगा, लेकिन संख्या के साथ विषम उदाहरण 228इसे थोड़ा स्पष्ट करता है।)
केविन क्रूज़सेन

@ केविनक्रूजसेन को अब तय किया जाना चाहिए।
ओलिवियर ग्रेगोइरे

यह वास्तव में करता है। मुझे पहले से ही डर था कि जब मैंने इसे पोस्ट किया था तो शुरुआती स्पष्टीकरण थोड़ा अस्पष्ट हो सकता है .. अब मैं देखूंगा कि क्या मैं आपके उत्तर का कुछ भी लिख सकता हूं। ;)
केविन क्रूज़सेन

1
मेरे पास बहुत समय नहीं है, लेकिन एक चीज जिसे आप गोल्फ कर सकते हैं वह एक नया चर जोड़ ,tरहा i+(a[i]>0?1:-1)है और बदल रहा है i+(t=a[i]>0?1:-1), और उसके बाद बस j+=tइसके बजाय उपयोग करें j+=a[i]>0?1:-1
केविन क्रूज़सेन

1
यदि आप उदाहरण के लिए घोषित करते हैं तो आप 2 को बचा सकते हैं t = 10 और उन सभी 10 को t के लिए बदल दें, हालाँकि यह कम समझ में
आएगा



1

जावास्क्रिप्ट (Node.js) , 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 जैसा दिखता है, नॉड-वाई कुछ भी नहीं।
नहीं कि चार्ल्स

यह tio जनरेट स्ट्रिंग है। इसमें या तो नोड बैबेल या स्पाइडरमोंक जेएस है। यह अभी भी नोड पर अपना ठीक काम करता है
डैनियलइंडी


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.