अधिकतम () पर्याप्त नहीं है


18

पहचान

एक मित्र ने आज इस सवाल को कुछ अलग तरीके से पेश किया - "क्या एक एकल [पायथन] कमांड कुछ पूर्णांकों का सबसे बड़ा निर्धारण कर सकता है और कि वे समान नहीं हैं?"।

हम भीतर ऐसा करने के लिए एक रास्ता नहीं मिला जबकि उचित "एक एकल आदेश" की परिभाषा के , मैंने सोचा कि यह गोल्फ के लिए एक मजेदार समस्या हो सकती है।

 चुनौती

" पूर्णांक की सूची की सबसे बड़ी लौटें यदि और केवल-अगर वे सभी समान नहीं हैं। "

अधिक विशेष रूप से:

पूर्णांक की अल्पविराम से अलग सूची वाली स्ट्रिंग को देखते हुए:

  • यदि वे सभी समान हैं, तो रिटर्न / आउटपुट कुछ भी नहीं है
  • सबसे बड़ा, वापसी / आउटपुट सबसे बड़ा

नियम

  • इनपुट पूर्णांकों का केवल एक अल्पविराम से अलग सूची से युक्त एक स्ट्रिंग होना चाहिए
  • उत्पादन के रूप में यह इनपुट में या तो कुछ भी नहीं है (किसी भी तरह का कोई उत्पादन), वरना बड़ा तत्व इनपुट से, का प्रतिनिधित्व होना चाहिए

प्रविष्टियाँ एक पूर्ण कार्यक्रम या सिर्फ एक फ़ंक्शन हो सकती हैं, बशर्ते आप उन्हें परीक्षण करने का कोई तरीका प्रदान करें!

मान्यताओं

  • मान लें कि इनपुट सूची तत्व एक से अधिक अंक हो सकते हैं लेकिन (2 32 - 1) से बड़ा नहीं है
  • मान लें कि इनपुट सूची में एक लाख से अधिक तत्व नहीं हैं
  • मान लें कि इनपुट में नकारात्मक मान शामिल नहीं होंगे
  • मान लें कि इनपुट कभी खाली नहीं होगा

संदेह से बचने के लिए, "अधिक विशेष रूप से" के बाद दी गई चुनौती का स्पष्टीकरण इसके ऊपर की चुनौती के विवरण को उलट देगा ("सबसे बड़ा लौटें ...")।

 उदाहरण

(1) सभी बराबर:

Input: 1,1
Output:

(2) डिसमिलर:

Input: 1,2
Output: 2

(३) शून्य:!

Input: 0,0,0,0,0,0,0,1,0,0
Output: 1

(4) रैंडम:

Input: 7,3,8,4,8,3,9,4,6,1,3,7,5
Output: 9

(5) बड़ी संख्या, बड़ी सूची:

Input: 627,3894,863,5195,7789,5269,8887,3262,1448,3192
Output: 8887

अतिरिक्त उदाहरण:

(6) सभी समान, बड़ी सूची:

Input: 7,7,7,7,7,7,7,7,7
Output:

(7) सभी समान, बड़ी सूची, बड़ी संख्या:

Input: 61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976,61976
Output:

(8) नहीं के बराबर, बड़ी सूची, बड़ी संख्या:

Input: 96185,482754,96185,96185,96185,96185,96185,96185,7,96185,96185,96185,96185,96185,96185,96185,96185,96185,96185,96185,96185,96185,96185,96185,96185,961185,96185,96185,96185
Output: 961185

स्कोरिंग

यह है code-golf, इसलिए कम से कम बाइट्स जीत के साथ कोड!


3
जब सूची में सभी समान मान हों, तो क्या कोई त्रुटि फेंकना ठीक है? और क्या हम शून्य मान का उत्पादन कर सकते हैं (जैसे कि Noneअजगर में) कुछ भी उत्पादन करने के बजाय? इसके अलावा, इनपुट को सूची के बजाय स्ट्रिंग क्यों होना चाहिए? और तुम से क्या मतलब है इनपुट से सबसे बड़ा तत्व है, का प्रतिनिधित्व के रूप में यह इनपुट में है
DJMcMayhem

15
मैं सुझाव दूंगा कि इनपुट आवश्यकताओं को एक सरणी / पूर्णांकों की सूची के लिए भी अनुमति दी जाए। क्या हम गारंटी देते हैं कि सूची में कम से कम 2 तत्व होंगे? क्या हम सभी पूर्णांकों के बराबर होने पर भी कुछ के बजाय एक सुसंगत, गैर-संख्यात्मक मूल्य का उत्पादन कर सकते हैं?
झबरा

15
कृपया एक परीक्षण मामला जोड़ें जहां अधिकतम एक से अधिक बार होता है, जैसे 7,3,7,2
निमि

3
क्या हमारे पास केवल एक तत्व के साथ एक परीक्षण मामला हो सकता है? इसके अलावा, क्या हम ,इनपुट में एक अनुगामी शामिल कर सकते हैं ?
जो किंग

2
जानकारी: यह चुनौती सैंडबॉक्स की गई थी। /// ओपी के लिए: हालांकि सैंडबॉक्स बहुत निष्क्रिय है, (मुझे लगता है) यह केवल एक छोटी सी समस्या है। समस्या यह है कि चुनौती के साथ कुछ समस्याएं स्पष्ट नहीं हैं यदि कोई केवल चुनौती को पढ़ता है, और केवल तभी खोजा जा सकता है जब कोई वास्तव में इसे हल करता है।
user202729 11

जवाबों:


8

आर , ५० 37 बाइट्स

-33 बाइट्स डिजाईन के लिए धन्यवाद! -13 बाइट्स rturnbull के लिए धन्यवाद!

x=scan(se=",");if(any(diff(x)))max(x)

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


इनपुट करता है (वर्तमान में) एक स्ट्रिंग है, दुर्भाग्य से।
झबरा


उफ़ मुझे लगता है कि मेरा पूर्व लिंक गलत था! यह सही होना चाहिए, मैं पोस्ट करने के इरादे से digEmAll के विचार के संयोजन ...
Giuseppe

3
37 बाइट्स में सुधार करके कि कैसे हम समानता के लिए सरणी का परीक्षण करते हैं।
rturnbull

5

मैथॉल्फ , 5 बाइट्स

è▀s╞╙

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

व्याख्या

è      Read whole input as int array
 ▀     Get unique elements
  s    Sort list
   ╞   Discard from left of array
    ╙  Get maximum of list

यह काम करता है क्योंकि अधिकतम ऑपरेटर और बाएं ऑपरेटर से दोनों खाली सूची के लिए कुछ भी नहीं करते हैं। खैर, अधिकतम ऑपरेटर सूची को हटा देता है और खाली सूची के लिए कुछ भी नहीं धकेलता है।

यदि इनपुट सूची के रूप में लिया जा सकता है तो यह 4 बाइट्स हो सकता है।


इनपुट एक अल्पविराम से अलग स्ट्रिंग होना चाहिए ।
झबरा

1
@ शैगी मुझे याद आती है। अभी MathGolf के पास "चरित्र पर विभाजित" ऑपरेटर नहीं है, इसलिए इसे सही करने के लिए कुछ काम करना होगा। में देखता हूँ में क्या कर सकता हूँ।
अधिकतम

5

पर्ल 6 , 26 23 22 बाइट्स

-1 बाइट धन्यवाद nwellnhof के लिए

{.max if .Set>1}o&EVAL

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

सब कुछ बराबर होने पर एक खाली पर्ची देता है।

व्याख्या

                o&EVAL  # Eval the string to a list of integers
{              }         # Pass to code block
 .max            # Return the max
      if .Set>1  # If the list converted to a set has more than one element

1
EVALचाल साफ है और तुम भी साथ एक बाइट को बचा सकता है o&EVAL
nwellnhof

if +.Setकाम नहीं करेगा ?
शुक्र

@ नहीं, हमें यह जाँचने की आवश्यकता है कि सेट में एक से अधिक तत्व हैं या नहीं।
जो राजा

Mh, और बिटवाइज़ ~ 2 है 2 बाइट्स पर्ल 6 :(
वेन

5

जेली , 4 बाइट्स

ḟṀE?

एक कमांड लाइन तर्क के रूप में इनपुट को स्वीकार करने वाला एक पूर्ण कार्यक्रम (अनक्वॉटेड) जो आवश्यक आउटपुट प्रिंट करता है

(ध्यान दें कि यह संबंधित है: खाली इनपुट जैसे , एकल आइटम इनपुट जैसे 7और कई आइटम इनपुट 7,8,7जैसे कि कल्पना वर्तमान में इसकी आवश्यकता होती है।)

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

कैसे?

ḟṀE? - Full program: if one argument is present it is evaluated using Python
     -                 so 7,8,7 -> [7,8,7], while 7 -> 7
ḟṀE? - Main Link: list or integer OR no argument (in which case an implicit argument of 0)
   ? - if...
  E  - ...condition: all equal? (for any integer E yields 1 since the argument is
     -                           treated as a list like [integer])
ḟ    - ...then: filter discard (since it's undefined the right argument is implicitly 
     -                          equal to the left; both are treated as lists, so this
     -                          yields an empty list)
 Ṁ   - ...else: maximum (again an integer is treated as a list)
     - implicit print (Jelly's representation of an empty list is an empty string
     -                 furthermore no newline is printed in either case)

4

APL (Dyalog Classic) , 6 बाइट्स

⍪⌈/~⌊/

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

एक ट्रेन जो अधिकतम ( ⌈/) बिना ( ~) माइनियम ( ⌊/) मैट्रिक्स में बदल गई है ( )

यदि इनपुट में केवल एक विशिष्ट तत्व है, ⌈/~⌊/तो रिक्त होगा और होगा 0 × 1 मैट्रिक्स लौटाएगा जो कुछ भी नहीं के रूप में प्रस्तुत करता है

अन्यथा, ⌈/~⌊/एक 1-तत्व वेक्टर होगा और इसका 1x1 मैट्रिक्स (एक स्केलर से नेत्रहीन अप्रभेद्य) होगा जिसमें अधिकतम होगा




3

पायथन 2 , 42 41 बाइट्स

a=input();print('',max(a))[len(set(a))>1]

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


PPCG में आपका स्वागत है :) मुझे पाइथन का पता नहीं है, लेकिन ऐसा लगता है कि इस सूची के लिए इनपुट की आवश्यकता है। दुर्भाग्य से (और अनावश्यक रूप से, मेरी राय) कल्पना (वर्तमान में) बहुत स्पष्ट है कि इनपुट एक स्ट्रिंग होना चाहिए।
झबरा

@ शैगी, यह प्रोग्राम काम करता है यदि इनपुट फॉर्म का है element, element, ...। यानी, इसे कोष्ठक में संलग्न करने की आवश्यकता नहीं है।
अर्नव बोरबोराह

1
एक सूची काम करती है, लेकिन इसकी आवश्यकता नहीं है क्योंकि पायथन 2 में, inputडिफ़ॉल्ट रूप evalसे स्टिंग से जो भी स्ट्रिंग पास की जाती है।
अर्नव बोरबोराह

1
40 बाइट्स । मैं नहीं जानता कि क्या एक तत्व सूची में एक अनुगामी हो सकती है ,, क्योंकि आपकी समाधान त्रुटियों के बाद से यदि इनपुट सिर्फ एक संख्या है
जो किंग

2
@JoKing वहाँ एक कारण है कि आप बदल नहीं सकता है !=एक को >इनपुट के रूप में खाली कभी नहीं होगा?
nedla2004

3

हास्केल , 77 75 61 बाइट्स

f.read.('[':).(++"]")    
f a=[0|any(/=a!!0+0)a]>>show(maximum a)

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

('[':).(++"]")एक स्ट्रिंग (जैसे "1,2,1,3") लेता है और इसे ब्रैकेट वर्ण ( "[1,2,1,3]") में संलग्न करता है । फिर readस्ट्रिंग को पूर्णांकों ( [1,2,1,3]) की सूची में बदल देता है ।

फ़ंक्शन इस टिपf का उपयोग कम सशर्त के लिए करता है यदि परिणामों में से एक खाली सूची है। जाँच करता है कि क्या सूची में कोई ऐसा तत्व है जो इसके पहले तत्व के बराबर नहीं है । (इस तरह की जरूरत है कि यह जानता है कि इसे संख्याओं की सूची को देखना है।) यदि सभी तत्व इस परीक्षण के परिणाम के बराबर हैं और खाली स्ट्रिंग वापस आ गया है। अन्यथा , वह स्ट्रिंग में कनवर्ट की गई सूची की अधिकतम है, वापस कर दी गई है।any(/=a!!0+0)aaa!!0+0readFalseshow(maximum a)


@nimi इशारा करने के लिए धन्यवाद!
लकोनी

3

लाल, 81 बाइट्स

x: split input","forall x[x/1: load x/1]sort x: unique x if 1 <>length? x[last x]

आर समाधान की तरह, कोड का एक बड़ा हिस्सा इनपुट स्ट्रिंग "1,1,2,44,1" को संभाल रहा है। अगर हम एक ब्लॉक के रूप में ऐसा कर सकते हैं, जैसे: x: [1 1 2 44 1]तो हम इसे 41 बाइट्स में कर सकते हैं:

sort x: unique x if 1 <>length? x[last x]

4
PPCG में आपका स्वागत है! हम आम तौर पर एक समाधान को सत्यापित करने के लिए दुभाषिया से एक लिंक के लिए पूछते हैं, और डेनिस, हमारे मॉड्स में से एक ने इसे ऑनलाइन आज़माया है! सिर्फ इस तरह के एक उद्देश्य के लिए! यह आपके लिए आपके उत्तर को प्रारूपित भी करेगा! आशा है कि आप यहाँ बिताए अपने समय का आनंद लेंगे!
Giuseppe

sort x: unique load replace/all input","" "if 1 <>length? x[last x]67 बाइट्स के लिए। दुर्भाग्य से inputTIO में काम नहीं करता है। यदि आप इसे एक कवक बनाते हैं, तो यह टीआईओ में ठीक काम करता है: 73 बाइट्स
गैलेन इवानोव

3

एपीएल (डायलॉग यूनिकोड) , 12 बाइट्स

पूरा कार्यक्रम। स्टड से स्ट्रिंग के लिए संकेत।

{1≠≢∪⍵:⌈/⍵}⎕

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

 अभिव्यक्ति के लिए संकेत और मूल्यांकन (अल्पविराम एक सूची में संख्या को समाप्‍त करता है)

{} निम्नलिखित अनाम लंबोदर लागू करें ( तर्क है; संख्याओं की सूची):

1≠ [अगर] 1 से अलग है ...

 की टैली ...

 में अद्वितीय संख्या ...

 सूचि

: फिर

⌈/ भर में अधिकतम लौटें (lit. अधिकतम कमी)…

 सूचि

 [और: कुछ नहीं]


1 argument ≠ यहाँ यह केवल तभी लगता है जब इसका तर्क एक सूची में समान संख्या की पुनरावृत्ति न हो इसलिए यह 1 1 1 या 22 नहीं है। तो 1 1 11 1 2 3 3 सही है भले ही 3 अद्वितीय नहीं है और अगर यह सच है तो अधिकतम 3 (भले ही इसे कोई आउटपुट नहीं लौटना चाहिए) वापस आ जाएगा। मेरी गलती कहाँ है? या संभव है ':' का एक अलग अर्थ है
RosLuP

@RosLuP यहां तक ​​कि अगर पुनरावृत्ति, और यहां तक ​​कि अधिकतम संख्या की पुनरावृत्ति भी है, तो भी हमें अधिकतम प्रिंट करना होगा। केवल अगर सूची में एक ही अद्वितीय संख्या है तो हम कुछ भी नहीं प्रिंट करते हैं। ओपी में अंतिम उदाहरण के मामले को देखें।
अड्म

हां मैंने गलत तरीके से समस्या को समझा ... धन्यवाद
RosLuP

क्या यह काम करेगा? ⌈/~⌊/
21

@ नहीं, यदि सभी तत्व समान हैं, तो यह एक नई पंक्ति का उत्पादन करता है।
अड्म

3

जावास्क्रिप्ट (Node.js) , 49/53 बाइट्स

मेरा मूल संस्करण का उपयोग कर .every()53 बाइट्स

क्या कोई फ़ंक्शन '' आउटपुट के रूप में वापस लौटता है? यकीन है कि इस पर सुधार किया जा सकता है ...

s=>(a=s.split`,`).every(e=>a[0]==e)?'':Math.max(...a)

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


झबरा , 49 बाइट्स का उपयोग Set()करके बेहतर संस्करण

s=>new Set(a=s.split`,`).size>1?Math.max(...a):``

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


2
एक बहुत ही त्वरित सुधार: tio.run/##00SSxxsosKNHNy09J/Z9m@7/…
Shaggy

@ शागिर्द अच्छा! मैंने सेट का उपयोग करना शुरू कर दिया, लेकिन इसे उतना छोटा नहीं पाया
क्रिस एम

2

नीम , 4 बाइट्स

𝐐𝐎Ξ𝐠

स्पष्टीकरण:

  Ξ   If
𝐐    all elements are equal
  𝐎  not
      then
   𝐠  get greatest element

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


2
वर्तमान में, इनपुट पूर्णांक के अल्पविराम-सीमांकित स्ट्रिंग होना चाहिए , लेकिन मैंने पूछा है कि क्या हम इसके बजाय एक सरणी ले सकते हैं।
झबरा


2

जाप, 16 बाइट्स

यह 9 होगा यदि अनावश्यक रूप से सख्त इनपुट प्रारूप के लिए नहीं, 7 यदि एक त्रुटि फेंकना कुछ भी नहीं के रूप में आउटपुट करता है।

मान लें कि स्ट्रिंग में कम से कम 2 पूर्णांक हैं।

q, mn
â ÊÉ?Urw:P

कोशिश करो


2

आम लिस्प, 102 बाइट्स

(lambda(x &aux(c(read-from-string(concatenate'string"#.`("x")"))))(or(apply'= c)(princ(apply'max c))))

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

आकार मुख्य रूप से डेटा इनपुट करने के कारण होता है; एक नियमित सूची के रूप में इनपुट के साथ, लंबाई 46 बाइट्स तक कम हो जाती है:

(lambda(x)(or(apply'= x)(princ(apply'max x))))

2

XPath 3.1, 54 बाइट्स

संदर्भ आइटम के रूप में इनपुट स्ट्रिंग के साथ:

let$t:=tokenize(.,',')!xs:int(.)return max($t)[$t!=$t]

यदि आप संदर्भ को XML स्कीमा नामस्थान से "xs" की तुलना में छोटे उपसर्ग को बांधने की अनुमति देते हैं, तो इसे एक वर्ण से कम किया जा सकता है।

स्पष्टीकरण: इनपुट स्ट्रिंग लेता है, "tokenizes", "विभाजक, xs:int()एक पूर्णांक में परिवर्तित करने के लिए प्रत्येक टोकन पर लागू होता है, अनुक्रम के अधिकतम की गणना करता है, अधिकतम आउटपुट प्रदान करता है बशर्ते विधेय $t!=$tसत्य है। यदि A और B क्रम हैं, तो A!=Bयह सही है कि यदि कोई आइटम (A, B से B) है तो ऐसी जोड़ी है a!=b

यदि इनपुट अल्पविराम से अलग स्ट्रिंग के बजाय पूर्णांक $ s के अनुक्रम के रूप में आपूर्ति की जा सकती है तो समाधान कम हो जाता है

max($s)[$s!=$s]

(15 बाइट्स - जो किसी भाषा में सबसे छोटा समाधान हो सकता है जो संक्षिप्तता के लिए उद्देश्यपूर्ण नहीं है)

ध्यान दें : यह "इनपुट में है" के रूप में प्रतिनिधित्व की आवश्यकता को संतुष्ट नहीं करता है - यदि इनपुट में अग्रणी शून्य या प्लस चिह्न के साथ पूर्णांक है, तो ये खो जाएंगे। मुझे संदेह है कि यह कई अन्य समाधानों के साथ भी सच है।


2

K4 , 38 35 बाइट्स

{$[1=#:t:?:(7h$","\:x)-48;;*:t@>t]}

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

q)k){$[1=#:t:?:(7h$","\:x)-48;;*:t@>t]}"1,2,4,4"
,4
q)k){$[1=#:t:?:(7h$","\:x)-48;;*:t@>t]}"4,4,4,4"
q)
q)k){$[1=#:t:?:(7h$","\:x)-48;;*:t@>t]}"7,3,8,4,8,3,9,4,6,1,3,7,5"
,9
q)k){$[1=#:t:?:(7h$","\:x)-48;;*:t@>t]}"7,7,7,7,7,7,7,7,7,7,7,7,7"
q)

मैं TiO पर उपलब्ध किसी भी k वेरिएंट में बहुत धाराप्रवाह नहीं हूं, इसलिए कोई ऑनलाइन उदाहरण उपलब्ध नहीं है, फिर भी मैं एक के साथ आने की कोशिश करूंगा

व्याख्या

यदि आप सोच रहे हैं कि कुछ संचालन दूसरों के सामने क्यों किए जाते हैं, तो K4 में ऑपरेटर पूर्वता नहीं है, यह इसके बजाय दाएं से बाएं की व्याख्या करता है (हालांकि आप पूर्वता के लिए कोष्ठक का उपयोग कर सकते हैं)। अर्धविरामों द्वारा व्यक्त की गई अभिव्यक्तियाँ।

   $[expr;`True;`False] is the conditional format

{$[1=#:t:?:(7h$","\:x)-48;;*:t@>t]}
               ","\:x                 //split string on commas
            7h$                       //cast strings to long
                      -48             //they'll be from ascii format, so compensate
         ?:                           //get distinct list      
       t:                             //set list to variable t        
     #:                               //get count of t
   1=                                 //check if count t = 1
                         ;;           //return nothing if true
                             t@>t  //if false, sort t descending
                           *:         //return first value

शायद और अधिक नीचे गोल्फ हो सकता है, अंत में उस makeshift अधिकतम फ़ंक्शन का उपयोग करने का प्रशंसक नहीं है।

संपादित करें: यदि आउटपुट में अल्पविराम एक समस्या है, तो इसे दो और बाइट्स के साथ तय किया जा सकता है:

q)k){$[1=#:t:?:(7h$","\:x)-48;;*:,/t@>t]}"1,2,4,4"
4
                                 ,/                 //joins the single element lists into one

कुल को 40 37 तक ले जाना, लेकिन संख्या से पहले अल्पविराम का मतलब यह है कि यह परमाणु के विपरीत एक एकल तत्व सूची है।


2

PHP (<= 5.6) 64 74 बाइट्स

 echo array_count_values($a=split(',',$argn))[$m=max($a)]==count($a)?'':$m;

पाइप के साथ चलाएं -nRया इसका परीक्षण करेंऑनलाइन के

splitPHP7 में हटा दिया गया था, लेकिन जैसा कि मुझे कुछ मुद्दों को ठीक करने के लिए 10 जोड़ना था, यह इसके बजाय उपयोग करने लायक था, explodeजो इस मामले में लगभग बराबर है।


Also this doesn't work when there are more than one element with the max value मुझे याद आया If they are all equal, return/output nothing जा करने के लिए If they are equal, return/output nothingअगर वहाँ एक से अधिक उत्पादन के लिए खाली कर रहे हैं, जिसका अर्थ है। जोड़ा जा रहा है ==count($a)यह ठीक करता है। क्योंकि array_count_valuesयह सरणी में प्रकट होने वाले समय की संख्या को गिनता है, यदि यह सरणी में तत्वों की कुल मात्रा के बराबर है तो आउटपुट '' अन्यथा अधिकतम आउटपुट करता है
ArtisticPhoenix

1
@JoKing - आपको पहले से घोषित चर के माध्यम से इनपुट नहीं लेना चाहिए - $argnइसे तय करने का उपयोग करके इसे स्टड से लिया जाता है (इसका उपयोग कई गोल्फ उत्तरों में किया गया है) मैं न केवल मेरा बल्कि अन्य उपयोगकर्ताओं के उदाहरण दे सकता हूं।
ArtisticPhoenix


2

05AB1E , 9 8 बाइट्स

',¡ZsËiõ

-1 बाइट @Cowabunghole के लिए धन्यवाद

इसे ऑनलाइन आज़माएं या सभी परीक्षण मामलों को सत्यापित करें

स्पष्टीकरण:

',¡        '# Split the (implicit) input by ","
   Z        # Push the maximum (without popping the list)
    s       # Swap so the list is at the top of the stack again
     Ëi     # If all elements are equal:
       õ    #  Push an empty string ""
            # (Implicitly output the top of the stack to STDOUT as result)

1
इसी तरह के समाधान, लेकिन आप ',¡ZsËiõ1 बाइट बचाकर अन्य चीजों से बच सकते हैं
काउबुनघोल

@Cowabunghole स्मार्ट, धन्यवाद!
केविन क्रूज़सेन

1

पायथन 2 , 44 बाइट्स

k=eval(input())
if~-len(set(k)):print max(k)

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


मैं अनुमान लगा रहा हूँ कि evalपायथन एक सूची में अल्पविराम-सीमांकित स्ट्रिंग को परिवर्तित करता है?
झबरा

1
हाँ; और अधिक बिल्कुल एक टपल (अपरिवर्तनीय सूची)। यदि इनपुट एक स्ट्रिंग नहीं था (यानी, TIO इनपुट सेक्शन में उद्धरण छोड़ दें), तो एक ही उपयोग कर सकता है k=input()और एक ही परिणाम प्राप्त कर सकता है ।
चास ब्राउन


1

चारकोल , 15 बाइट्स

≔I⪪S,θ¿›⌈θ⌊θI⌈θ

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

≔I⪪S,θ

कॉमा पर इनपुट विभाजित करें और पूर्णांक के लिए प्रत्येक मान डालें।

¿›⌈θ⌊θ

परीक्षण करें कि क्या अधिकतम मूल्य न्यूनतम मूल्य से अधिक है या नहीं।

I⌈θ

यदि ऐसा है तो स्ट्रिंग और प्रिंट के लिए अधिकतम मूल्य डालें।


1

गणितज्ञ, 43 बाइट्स

If[!Equal@@#,Max@#]&@@#~ImportString~"CSV"&

शुद्ध कार्य। इनपुट या नहीं और फिर एक नंबर या के रूप में एक अल्पविराम से अलग स्ट्रिंग ले जाता है Null। मेरा मानना ​​है कि यह मान्य है, जैसा Nullकि रेखांकन प्रदर्शित नहीं किया गया है:


1

सी (जीसीसी) , 91 बाइट्स

M(s)char*s;{long m=atol(s),o,l=0;for(;s=strchr(s,44);o<0?m-=o:0)l|=o=m-atol(++s);s=l?m:-1;}

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

Degolf

M(s)char*s;{
    long m=atol(s),o,l=0; // Read the first integer from string
    for(;s=strchr(s,44); // Advance pointer to next ','
           o<0?m-=o:0) // End of loop: if difference <0, deduct from max, increasing it to new max.
        l|=o=m-atol(++s); // Read next number, and subtract it from current max. 
                          // Bitwise-OR the difference into the l-variable
    s=l?m:-1; // End of function: if l is non-zero, there were at least two different values.
              // Return -1 if l is zero, otherwise the max value.
}

सुझाएँ M(char*s)बजाय M(s)char*s;और index()के बजायstrchr()
ceilingcat

1

अजगर, 7 बाइट्स

Itl{QeS

इसे ऑनलाइन आज़माएं!
सभी परीक्षण मामले (बेहतर आउटपुट स्वरूपण के लिए थोड़ा अलग कोड)

जैसा कि पायथन पायथन पर आधारित है, उपयोगकर्ता इनपुट को हमेशा एक स्ट्रिंग के रूप में व्याख्या किया जाता है, जिसे तब पारित किया जा सकता है eval() । सभी पायथ प्रोग्राम अपने आप चलते हैंQ=eval(input()) अपने पहले निर्देश के रूप में ।

स्पष्टीकरण:
Itl{QeS  | Full code
Itl{QeSQ | with implicit variables filled
---------+-------------------------------
I        | If
 t       | one less than
  l      | the length of
   {Q    | the deduplicated input
         | is truthy (!=0),
         | print
     e   | the last element of
      SQ | the sorted input

1

जावा (JDK) , 101 बाइट्स

d->{long m=0,c=-1,b;for(var s:d.split(",")){b=new Long(s);c=c<0|c==b?b:0;m=b>m?b:m;}return c>0?"":m;}

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

व्याख्या की

d->{                            // Function taking a String input
    long m=0,c=-1,b;            // Initialise variables
    for(var s:d.split(",")){    // Split by comma and loop over elements
        b=new Long(s);          // Parse String to Long
        c=c<0                   // If c<0 (i.e. this is the first element)
            |c==b               // ...or c is equal to the current element
            ?b                  // Set c to the current element (all elements are the same so far
            :0;                 // Otherwise set c to zero to denote that list is not all same element  
        m=b>m?b:m;              // Set m to max of b and m
    }
    return c>0?""               // If c is not zero then all elements are the same, return nothing
                 :m;            // Else return max element
}

बोनस समाधान!

अपने सर्वोत्तम प्रयासों के बावजूद मैं इस समाधान को 105 बाइट्स से कम रेगेक्स और स्ट्रीम का उपयोग करके प्राप्त नहीं कर सका, लेकिन मुझे वास्तव में इसकी लालित्य पसंद आया, इसलिए इसे एक मानद उल्लेख देना पड़ा;

d->d.matches("(.+?)(,\\1)+")?"":java.util.Arrays.stream(d.split(",")).map(Long::new).reduce(0L,Long::max)

अपने regex (माइनस ?) और एक नियमित लूप के संयोजन का उपयोग करके 100 बाइट्स और वापसी (स्ट्रीम के बजाय)।
केविन क्रूज़सेन

1

MATL , 15 9 बाइट्स

U&=?}1MX>

इसे ऑनलाइन आज़माएं!
एकाधिक वृषण

बस अपने MATL चॉप्स को बहुत ज्यादा जंग लगने से बचाने की कोशिश कर रहा हूँ!

संपादित करें : जंग खाए; 6 बाइट्स को बचाया, @LuisMendo को धन्यवाद।

व्याख्या

U     % str2num - automatically parses comma-separated strings
&=?   % Are all the values equal? 
}     % if not
1M    % Get the numeric matrix again on the stack
X>    % And find its maximum value.

1

पिप , 13 बाइट्स

a^:',MXaRMMNa

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

Ngn's APL समाधान के दृष्टिकोण का उपयोग करता है :

     MNa  Minimum of the list
  aRM     Remove it from the list
MX        Take the max of the remaining elements

पहले 5 बाइट्स a^:',कॉमा पर इनपुट स्ट्रिंग को विभाजित करते हैं।

वैकल्पिक 13-बाइट समाधान:

I!$=Ya^',PMXy
a^:',$=a?uMXa
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.