सूची को अंतिम संख्या तक कम करें


9

इनपुट

संख्याओं की एक सूची (सरणी), या संख्यात्मक तार अगर यह आसान बनाता है। आप मान सकते हैं कि सूची में हमेशा कम से कम दो तत्व होंगे और हर तत्व एक प्राकृतिक संख्या (शून्य से बड़ा पूर्णांक) होगा।

आउटपुट

एक एकल संख्या, या फिर, एक संख्यात्मक स्ट्रिंग।

मुसीबत

सूची के वर्तमान चरण में सबसे बड़ी संख्या के अंतिम अंक को हटाकर संख्याओं की सूची को कम करने का विचार है, अंत में एक संख्या के साथ समाप्त होता है (केवल एक संख्या वापस आनी चाहिए, भले ही कई उदाहरण हों)

उदाहरण

[123,343,121,76,465,786] -- The last digit in 786 is dropped, so it becomes 78
[123,343,121,76,465,78]  -- New largest number is 465, so the 5 is dropped, making it 46
[123,343,121,76,46,78]   -- Repeat until left with one number
[123,34,121,76,46,78]
[12,34,121,76,46,78]
[12,34,12,76,46,78]
[12,34,12,76,46,7]
[12,34,12,7,46,7]
[12,34,12,7,4,7]
[12,3,12,7,4,7]
[1,3,1,7,4,7]            -- If there are multiple max numbers, you **must** remove the last digit from all of them
[1,3,1,4]
[1,3,1]
[1,1]                    -- You have your answer when there is one number, or multiple numbers that are equal
1                        -- Result

कमियां

मानक खामियां लागू होती हैं

अन्य अड़चनें

आपका कार्यक्रम किसी भी यादृच्छिक संख्या की सूची के लिए काम करना चाहिए (पाठ्यक्रम के कारण)

परीक्षण के मामलों

[24,72,4]
[24,7,4]
[2,7,4]
[2,4]
[2]
2

[14, 7]
[1, 7]
[1]
1

[1278,232,98273,2334]
[1278,232,9827,2334]
[1278,232,982,2334]
[1278,232,982,233]
[127,232,982,233]
[127,232,98,233]
[127,232,98,23]
[127,23,98,23]
[12,23,98,23]
[12,23,9,23]
[12,2,9,2]
[1,2,9,2]
[1,2,2]
[1]
1

स्कोरिंग

ये है , तो हर भाषा में सबसे कम जवाब जीतता है!


1
कृपया मुझे बताएं कि क्या मुझे कुछ याद है। पहला प्रश्न।
हेनरी

14
पता नहीं अगर यह परिवर्तन करने के लिए बहुत देर हो चुकी है, लेकिन सवाल बेहतर हो सकता है अगर हम था कि उत्पादन के लिए प्रत्येक चरण की है। मुझे लगता है कि उत्तर बिलकुल सीधे होंगे अन्यथा नहीं।
DLosc

8
चूंकि किसी और ने इसका उल्लेख नहीं किया है, यह एक ऐसी चीज है जिसे अक्सर सैंडबॉक्स में पकड़ा जाएगा ।
जेम्स

1
क्या आप ऐसे टेस्टकेस जोड़ सकते हैं जहां उत्तर सूची में पहली प्रविष्टि का पहला अंक नहीं है?
JAD

5
जिस तरह से मैंने इस प्रश्न को पढ़ा है वह उत्तर [12, 123, 124]है 12, जो हर एक पोस्ट किए गए उत्तर को गलत बनाता है
अर्जन जोहान्सन

जवाबों:






3

जाप , 8 6 5 बाइट्स

-1 बाइट @ शुगी को धन्यवाद

n g g

संख्यात्मक स्ट्रिंग्स की एक सरणी के रूप में इनपुट लेता है। इसे ऑनलाइन आज़माएं!

व्याख्या

        // implicit input: array of strings
n       // sort the array
  g     // get the first element
    g   // get the first character
        // implicit output

5 बाइट्स : सरणी को क्रमबद्ध करें, पहला तत्व प्राप्त करें, पहला वर्ण प्राप्त करें।
झबरा

@ शैगी ओह दुह, मैं पूरी तरह से इस एक पर जटिल हूं। धन्यवाद!
जस्टिन मेरिनर

कोई बात नहीं :) n v g5 बाइट्स के लिए भी काम करेगा। वैसे, जप में आपका स्वागत है।
झबरा

2

के लिए विफल है [12,23,12]
ओलिवियर ग्राएगोइरे

@ ओलिवियरग्रैगोयर: कैसे? आदेश में अंकों को हटाकर 13,2,2,2,1 में परिणाम अपेक्षित है।
Emigna


2

PHP , 45 बाइट्स

<?foreach($_GET as$v)$r[]=$v[0];echo min($r);

इसे ऑनलाइन आज़माएं!


के लिए विफल है [12,23,12]
ओलिवियर ग्राएगोइरे

@ ओलिवियरग्रेयर [12,23,12] -> [12,2,12] -> [1,2,12] -> [1,2,1] -> [1,1] -> [1] -> 1 मेरी राय में सही है
जार्ग हल्सरमैन 13


2

वी , 11 , 5 बाइट्स

ÚxV}p

इसे ऑनलाइन आज़माएं!

मैं वास्तव में यह की तुलना में इस waaay को और अधिक जटिल बना रहा था । यह उत्तर बस ASCII मानों द्वारा हर पंक्ति को क्रमबद्ध करता है, और फिर पहले वर्ण को लौटाता है। चूंकि यह दयालु या उबाऊ उत्तर है, इसलिए यहां एक और दिलचस्प जवाब है जो वास्तव में वर्णित एल्गोरिथ्म को लागू करता है:

वी , 11 बाइट्स

òún
/äîä
Lx

इसे ऑनलाइन आज़माएं!


जब मैंने सवाल उठाया था तब मैं भी था। आपका मूल उत्तर वही था जिसकी मुझे सबसे ज्यादा उम्मीद थी। ओह।
हेनरी

2

जेली ,  3  2 बाइट्स

ṂḢ

एक पूर्ण कार्यक्रम जो पात्रों की सूची की सूची लेता है (तार) और परिणाम प्रिंट करता है।

इसे ऑनलाइन आज़माएं!

कैसे?

हमें केवल सबसे छोटे अग्रणी अंक को वापस करने की आवश्यकता है ...

ṂḢ - Main link: list of lists of characters
Ṃ  - minimum (lexicographical ordering ensures this will start with the minimal digit)
 Ḣ - head (get that first digit character)

कोई बात नहीं, ऐसा होता है।
जोनाथन एलन

2

जावास्क्रिप्ट (ईएस 6), 17 बाइट्स

स्ट्रिंग के एक सरणी के रूप में इनपुट लेता है।

a=>a.sort()[0][0]

कोशिश करो

इनपुट एक अल्पविराम से अलग संख्या की सूची।

o.innerText=(f=
a=>a.sort()[0][0]
)((i.value="1278,232,98273,2334").split`,`);oninput=_=>o.innerText=f(i.value.split`,`)
<input id=i><pre id=o>



1

ब्रिंगोल्फ , 17 बाइट्स

VVR{Mvd<M&$_R}vvx

इसे ऑनलाइन आज़माएं!

व्याख्या

VVR{Mvd<M&$_R}vvx  Implicit input from commandline args
VVR                Create stack2 and stack3, return to stack1
   {.........}     Foreach item in stack..
    M              ..Move item to next stack
     v             ..Switch to next stack
      d            ..Split item into digits
       <M          ..Move first item to next stack
         &$_       ..Clear stack
            R      ..Return to stack1
              vv   Switch to stack3
                x  Reduce to lowest value
                   Implicit output of last item on stack

दूसरे शब्दों में, यह प्रत्येक आइटम के केवल पहले अंक से मिलकर एक स्टैक का निर्माण करता है, फिर सबसे कम आउटपुट करता है।

इस चुनौती ने मुझे बिल्डिंग्स के लिए उपयोगी विचारों का एक गुच्छा दिया, जो कि ब्रिंगोल्फ को जोड़ने के लिए था, और अब "विशेष" फॉरेस्ट लूप के अतिरिक्त के लिए धन्यवाद, ब्रिंगोल्फ इसे 5 बाइट्स में कर सकते हैं:

ब्रिंगोल्फ , 5 बाइट्स [गैर-प्रतिस्पर्धी]

(d<)x

व्याख्या

(d<)x  Implicit input from commandline args
(..)   Special foreach loop, iterates over the stack, moving each item to a special
       Sandboxed stack environment, and prepends the last item of the sandboxed
       stack to the real stack at the end of each iteration
 d<    Split into digits, move first digit to end of stack
    x  Reduce to lowest value
       Implicit output of last item on stack

इसे ऑनलाइन आज़माएं!

मैं आम तौर पर सिर्फ एक चुनौती को पूरा करने के लिए बिल्डरों को जोड़ने के खिलाफ हूं , लेकिन मैं नए (...)फॉर्च्यूनर लूप के लिए उपयोग की अधिकता देख सकता हूं , इसलिए मैं वास्तव में इसे इस चुनौती के लिए केवल एक सुविधा जोड़ने पर विचार नहीं करता हूं।


के लिए विफल है [12,23,12]। अपेक्षित आउटपुट है 2, आप वापस लौट आए 1
ओलिवियर ग्रेगोइरे

@ ओलिवियरग्रेयर उस का अपेक्षित उत्पादन है 1:[12,23,12] > [12,2,12] > [1,2,1] > [1,1]
स्काइड्सडेव



0

पिप , 5 बाइट्स

कमांड-लाइन तर्कों के रूप में इनपुट संख्या की सूची लेता है।

@@SSg

इसे ऑनलाइन आज़माएं!

वैकल्पिक रूप से:

MN@Zg

इसे ऑनलाइन आज़माएं!

स्पष्टीकरण

दोनों कार्यक्रमों में, gकमांड-लाइन आर्ग्स की सूची है।

@@SSg

SSस्ट्रिंग तुलना का उपयोग करके सॉर्ट करें, इस प्रकार संख्याओं को पहले छोटे अंकों के साथ रखें, भले ही उनके परिमाण की परवाह किए बिना। यूनेरी @किसी सूची या स्केलर का पहला तत्व देता है। हम छंटनी के बाद पहले नंबर का पहला अंक प्राप्त करने के लिए इसे दो बार लागू करते हैं।

    g  [24 72 491]
  SS   [24 491 72]
 @     24
@      2

वैकल्पिक रूप से:

MN@Zg

Zज़िप है; किसी सूची को स्थानांतरित करने के लिए इसके यूरीरी संस्करण का उपयोग किया जा सकता है। ट्रांसपोज़्ड सूची का पहला तत्व सभी नंबरों के पहले अंकों की एक सूची है। @अंकों की वह सूची प्राप्त करता है; MNअपनी न्यूनतम लेता है।

    g  [24 72 491]
   Z   [[2 7 4] [4 2 9]]
  @    [2 7 4]
MN     2

0

PHP, 27 बाइट्स

<?=substr(max($_GET),0,-1);

(वाह, सवाल को पूरी तरह से गलत समझा। यह काम नहीं करता है। बाद में संपादित करेगा।)




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