क्या यह एक समारोह है?


47

(key, value)जोड़े की एक सूची को देखते हुए , यह निर्धारित करें कि क्या यह एक फ़ंक्शन का प्रतिनिधित्व करता है, जिसका अर्थ है कि प्रत्येक कुंजी मानचित्र एक सुसंगत मूल्य पर। दूसरे शब्दों में, जब भी दो प्रविष्टियों के पास समान कुंजी होती है, तो उनके पास भी समान मान होना चाहिए। बार-बार प्रविष्टियां ठीक हैं।

उदाहरण के लिए:

# Not a function: 3 maps to both 1 and 6
[(3,1), (2,5), (3,6)]

# Function: It's OK that (3,5) is listed twice, and that both 6 and 4 both map to 4
[(3,5), (3,5), (6,4), (4,4)]

इनपुट:(key, value) 1 से 9. अंकों का उपयोग करके जोड़े का एक क्रमबद्ध क्रम। आपको किसी विशेष ऑर्डर की आवश्यकता नहीं हो सकती है। आप वैकल्पिक रूप से अलग-अलग इनपुट के रूप में मुख्य सूची और मूल्य सूची ले सकते हैं।

आउटपुट: फ़ंक्शन के लिए एक सुसंगत मूल्य, और गैर-फ़ंक्शन के लिए एक अलग सुसंगत मूल्य।

परीक्षण के मामले: पहले 5 इनपुट फ़ंक्शंस हैं, अंतिम 5 नहीं हैं।

[(3, 5), (3, 5), (6, 4), (4, 4)]
[(9, 4), (1, 4), (2, 4)]
[]
[(1, 1)]
[(1, 2), (2, 1)]

[(3, 1), (2, 5), (3, 6)]
[(1, 2), (2, 1), (5, 2), (1, 2), (2, 5)]
[(8, 8), (8, 8), (8, 9), (8, 9)]
[(1, 2), (1, 3), (1, 4)]
[(1, 2), (1, 3), (2, 3), (2, 4)]

यहाँ वे इनपुट की दो सूचियों के रूप में हैं:

[[(3, 5), (3, 5), (6, 4), (4, 4)], [(9, 4), (1, 4), (2, 4)], [], [(1, 1)], [(1, 2), (2, 1)]]
[[(3, 1), (2, 5), (3, 6)], [(1, 2), (2, 1), (5, 2), (1, 2), (2, 5)], [(8, 8), (8, 8), (8, 9), (8, 9)], [(1, 2), (1, 3), (1, 4)], [(1, 2), (1, 3), (2, 3), (2, 4)]]

लीडरबोर्ड:


विशेषण समारोह?
प्रहार

@ प्रोक यह विशेषण नहीं है।
xnor

क्या इनपुट समान लंबाई की दो सूचियां हो सकती हैं, एक मान के लिए एक कुंजी के लिए?
केल्विन के शौक

2
क्या (key,value)जोड़े को उलट देना ठीक है, जैसा कि इसमें है (value,key)? मैं अपने जवाब से कुछ बाइट्स दाढ़ी कर सकता हूँ अगर ऐसा है।
यम्बर्ट

1
@ymbirtt हाँ, आपके पास जोड़े या तो क्रम में हो सकते हैं।
xnor

जवाबों:


37

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

lambda x:len(dict(x))==len(set(x))

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

इनपुट से एक शब्दकोश और एक सेट बनाता है और उनकी लंबाई की तुलना करता है।
शब्दकोशों में डुप्लिकेट कुंजी नहीं हो सकती है, इसलिए सभी अवैध (और दोहराया) मान हटा दिए जाते हैं।


5
पायथन 3, 30 बाइट्स:lambda x:not dict(x).items()^x
विड्रैक

21

हास्केल, 36 बाइट्स

f x=and[v==n|(k,v)<-x,(m,n)<-x,k==m]

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

बाहरी (-> (k,v)) और भीतरी (-> (m,n)) जोड़े पर पाश और जब भी k==m, का सत्य मूल्य इकट्ठा v==n। जांचें कि क्या सभी सत्य हैं।


तुम बहुत जल्दी हो! : /
त्रुटिपूर्ण

18

ब्रेकीलॉग , 5 4 बाइट्स

dhᵐ≠

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

पूरा कार्यक्रम। जहां तक ​​मैं बता सकता हूं, इसका कारण यह है कि अधिकांश अन्य गोल्फिंग भाषाओं को हराया जा रहा है, जो कि ब्रैचीलॉग में एक बिलिन है, जबकि अन्य गोल्फिंग भाषाओं में से अधिकांश को इसे संश्लेषित करने की आवश्यकता है।

व्याख्या

dhᵐ≠
d     On the list of all unique elements of {the input},
 h    take the first element
  ᵐ     of each of those elements
   ≠  and assert that all those elements are different

एक पूर्ण कार्यक्रम के रूप में, trueयदि आश्वासन सफल होता है, या falseयदि वह विफल हो जाता है , तो हम प्राप्त करते हैं ।



9

रेटिना , 25 बाइट्स

1`({\d+,)(\d+}).*\1(?!\2)

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

इनपुट प्रारूप है {k,v},{k,v},...0कार्यों के लिए और 1गैर-कार्यों के लिए प्रिंट । मैं इनपुट प्रारूप में अल्पविरामों के बजाय लाइनफीड्स का उपयोग करके दो बाइट्स बचा सकता था, लेकिन यह गड़बड़ है।


मेरा मानना ​​है कि यह कम से कम एक तकनीकी दृष्टिकोण से "गंभीरता से काम करता है" के रूप में योग्य है।
FryAmTheEggman

8

ब्रेकीलॉग , 13 बाइट्स

¬{⊇Ċhᵐ=∧Ċtᵐ≠}

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

व्याख्या

¬{          }      It is impossible...
  ⊇Ċ               ...to find a subset of length 2 of the input...
   Ċhᵐ=            ...for which both elements have the same head...
       ∧           ...and...
        Ċtᵐ≠       ...have different tails.

क्या आप बता सकते हैं कि कैसे Ċhᵐ=और कैसे Ċtᵐ≠काम करते हैं?
कैलक्यूलेटरफ्लीन

@CalculatorFeline अपरकेस अक्षर परिवर्तनशील नाम हैं। युगलĊ नामक एक विशेष चर है जो हमेशा दो तत्वों की एक सूची होने के लिए पूर्वनिर्मित है। एक रूपक है जो इनपुट के प्रत्येक तत्व (यहाँ, ) पर तुरंत पूर्ववर्ती ( या यहाँ) लागू होता है । और सरल जाँच करें कि उनके इनपुट में सभी समान / सभी अलग-अलग तत्व हैं। h - headt - tailĊ=
घातक

7

MATL , 8 बाइट्स

1Z?gs2<A

इनपुट्स हैं: valueएस के साथ एक सरणी, एस के साथ एक सरणी के बाद key

आउटपुट 1फ़ंक्शन के लिए है, 0दूसरों के लिए।

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

व्याख्या

1Z?

एक विरल मैट्रिक्स बनाता है। प्रारंभ में सभी प्रविष्टियों में शामिल हैं 0; और 1प्रत्येक प्रविष्टि के लिए जोड़ा गया है (i, j), जहां jऔर iइनपुट हैं key, valueजोड़े।

g

मैट्रिक्स तार्किक में बदल जाता है; वह है, प्रविष्टियां जो 1(डुप्लिकेट key, valueजोड़े के अनुरूप ) से अधिक हैं 1

s

प्रत्येक स्तंभ का योग गणना है। यह valueप्रत्येक के लिए अलग-अलग s की संख्या है key

2<A

एक फ़ंक्शन में ऐसे सभी योग कम होंगे 2


6

आर, 33 बाइट्स

यह आर के लिए मेरा संस्करण है। यह aveफ़ंक्शन का लाभ उठाता है। मैंने कुंजी और मूल्य मापदंडों पर चूक सेट करके खाली इनपुट के लिए अनुमति दी है। aveप्रत्येक कुंजी के लिए मान का एक उत्पादन कर रहा है। सौभाग्य से यह इनपुट मानों के समान क्रम में साधन लौटाता है, इसलिए इनपुट की तुलना अलग-अलग मान होने पर इंगित करेगी। TRUEयदि यह एक फ़ंक्शन है, तो लौटाता है।

function(k=0,v=0)all(ave(v,k)==v)

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


6

05AB1E , 11 9 7 बाइट्स

सहेजा गया 2 बाइट्स kalsowerus के लिए धन्यवाद ।

Ùø¬DÙQ,

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

व्याख्या

Ù           # remove duplicates
 ø          # zip
  ¬         # get the first element of the list (keys)
   D        # duplicate list of keys
    Ù       # remove duplicates in the copy
     Q      # compare for equality
      ,     # explicitly print result

@ रिले: हां। मैं अभी भी काफी खुश हूं कि विशेष मामले ने केवल एक तिहाई कार्यक्रम समाप्त किया: पी
एमिग्ना

मुझे लगता है कि आप 3 बाइट्स `\)^को सिर के साथ बदलकर बचा सकते हैं ( ¬): TIO
kalsowerus

@kalsowerus: दुर्भाग्य से जो विशेष मामले के लिए टूटता है []:(
एमिग्ना

@ इनिग्मा ओह ने काम किया क्योंकि जब परीक्षण किया गया था तब भी मेरे पास ,अंत में बचे हुए थे। इसे जोड़ें और फिर यह किसी तरह से काम करता है []
कलसोवरस

अद्यतित TIO
कलसोवरस

5

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

@ बाइल के लिए 6 बाइट्स को सहेजा गया

a=>a.some(([k,v])=>m[k]-(m[k]=v),m={})

क्रमशः कार्यों और गैर-कार्यों के लिए रिटर्न falseया true

यह प्रत्येक फ़ंक्शन के पुराने मूल्य को लगातार घटाकर काम करता है ( m[k]) और नया ( m[k]=vजो नया मूल्य भी संग्रहीत करता है)। हर बार, तीन मामले होते हैं:

  • यदि कोई पुराना मूल्य नहीं था, तो m[k]रिटर्न undefinedundefinedपरिणामों में से कुछ भी घटाना NaN, जो मिथ्या है।
  • यदि पुराना मान नए के समान है, तो m[k]-vपरिणाम होता है 0, जो गलत है।
  • यदि पुराना मान नए से अलग है, तो m[k]-vगैर-शून्य पूर्णांक में परिणाम होता है, जो सत्य है।

इसलिए, हमें सिर्फ यह सुनिश्चित करना है कि m[k]-(m[k]=v)सत्य कभी न हो।


1
काफ़ी लंबा। का उपयोग करें a=>!a.some(([x,y])=>m[x]-(m[x]=y),m=[])
नील

@ नील यह डांग, मुझे पता था कि अपरिभाषित होने का उपयोग करने के लिए कोई रास्ता होना चाहिए m[k]... धन्यवाद!
ETHproductions 21

5

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

UnsameQ@@(#&@@@Union@#)&

स्पष्टीकरण: Unionडुप्लिकेट जोड़े को हटाता है, फिर #&@@@प्रत्येक जोड़ी से पहला तत्व प्राप्त करता है (जैसे First/@कि कम बाइट्स के साथ)। अगर इन पहले तत्वों में कोई दोहराव है, तो जोड़े एक फ़ंक्शन नहीं बनाते हैं, जिसे हम जांचते हैं UnsameQ

( @मेरे द्वारा लिखे गए किसी भी कार्यक्रम में वर्णों का उच्चतम घनत्व हो सकता है ...)




4

बैश + कोरुटिल्स, 17

sort -u|uniq -dw1

इनपुट STDIN के माध्यम से दिया जाता है। keyऔर अलग valueहो Tabगए हैं और प्रत्येक जोड़ी न्यूलाइन-सीमांकित है।

sortडुप्लिकेट कुंजी-मूल्य जोड़े को निकालता है। uniq -dकेवल डुप्लिकेट आउटपुट करता है, और इसलिए फ़ंक्शन के मामले में खाली स्ट्रिंग को आउटपुट करता है, और एक गैर-रिक्त स्ट्रिंग अन्यथा - जब डुप्लिकेट कुंजियाँ होती हैं जो विभिन्न मूल्यों पर मैप करती हैं।

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


4

05AB1E , 9 बाइट्स

कोड:

ãü-ʒ¬_}}Ë

स्पष्टीकरण:

ã            # Cartesian product with itself
 ü-          # Pairwise subtraction
   ʒ  }}     # Filter out elements where the following is not true:
    ¬_       #   Check whether the first digit is 0
        Ë    # Check if all equal

05AB1E एन्कोडिंग का उपयोग करता है । इसे ऑनलाइन आज़माएं!


ʒतुरंत दिखाने के लिए मैं देख रहा हूँ :)
एमिग्ना

@Emigna Yes haha: p, लेकिन मुझे पहले से ही एक बग मिला है जिसके कारण मैं }}इसके बजाय उपयोग करना चाहता हूं }
अदनान

4

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

QḢ€µQ⁼

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

व्याख्या

QḢ€µQ⁼
Q      - Remove duplicate pairs
 Ḣ€    - Retrieve the first element of each pair
   µ   - On the output of what came before..
     ⁼ - Are the following two equal (bit returned)?
    Q  - The output with duplicates removed
       - (implicit) the output.

यहाँ एक वैकल्पिक विधि है, 6 बाइट्स:

QḢ€ṢIẠ

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

डुप्लिकेट कुंजियों को हटाने के साथ परीक्षण के बजाय, यह प्रकार ( ) और जांचता है कि क्या शर्तों के बीच अंतर ( I) सभी सत्य है ( )


4

आर , 95 66 बाइट्स

function(k,v)any(sapply(k,function(x){length(unique(v[k==x]))-1}))

जार्को डबेलडैम के लिए 29 बाइट्स का धन्यवाद।

अनाम फ़ंक्शन। आउटपुट FALSEयदि एक फ़ंक्शन और TRUEयदि नहीं (क्षमा करें)। तर्क के रूप में कुंजी की सूची और मूल्यों की एक सूची लेता है, जैसे।

> f(c(1,2,5,1,2),c(2,1,2,2,5))
[1] TRUE # not a function

सभी कुंजी के माध्यम से लूप्स और उस कुंजी के लिए अद्वितीय मानों के सेट की लंबाई पकड़ लेता है। यदि anyउनमें से> 1 हैं, तो लौटें TRUE

यह मिकी के जवाब से पिट रहा है , और ग्यूसेप का भी । उन में से एक को बढ़ावा देना।


आप एक डेटाफ़्रेम क्यों बना रहे हैं, केवल तब ही आप उस डेटाफ़्रेम में डाले गए वैक्टरों का संदर्भ लें? function(k=0,v=0)any(sapply(k,function(x){length(unique(v[k==x]))-1}))एक ही बात को पूरा करना चाहिए।
JAD

क्योंकि मैं अभी भी सीख रहा हूँ! अन्य आर उत्तरों में से कम से कम एक आप इसे अधिक या कम करते हैं जैसे आप वर्णन करते हैं।
बीएलटी

क्षमा करें, अगर मैं थोड़ा कठोर हो गया :) आपका सबमिशन अन्य R उत्तरों के लिए थोड़ा भिन्न है, और यदि आप निरर्थक डेटा.फ्रेम को काटते हैं, तो आप बेहतर तुलना करने में सक्षम हो सकते हैं।
JAD

4

जे-यूबी , 48 33 25 21 बाइट्स

जॉर्डन के लिए -3 बाइट्स धन्यवाद!

:size*:==%[:to_h,~:|]

व्याख्या

:size*:==%[:to_h,~:|]

# "readable"
(:size * :==) % [:to_h, ~:|]

# transform :% to explicit lambda
->(x){ (:size * :==).(:to_h ^ x, ~:| ^ x)

# apply explicit x to functions
->(x){ (:size * :==).(x.to_h, x|x) }

# expand :* (map over arguments)
->(x){ :==.(:size.(x.to_h), :size.(x|x) }

# simplify symbol calls to method calls
->(x){ x.to_h.size == (x|x).size }

# :| is set union for arrays; x|x just removes duplicates, like :uniq but shorter
->(x){ x.to_h.size == x.uniq.size }

पहला दृष्टिकोण, 33 बाइट्स

-[:[]&Hash,:uniq]|:*&:size|:/&:==

यह एक समान रूबी समाधान से लंबा है, लेकिन इसे बनाने में मज़ा आया।

रूबी में रूपांतरित करके स्पष्टीकरण का प्रयास:

-[:[]&Hash,:uniq]|:*&:size|:/&:==

# "readable"
-[:[] & Hash, :uniq] | (:* & :size) | (:/ & :==)                  

# turn into explicit lambda
->(x){ (:/ & :==) ^ ((:* & :size) ^ (-[:[] & Hash, :uniq] ^ x)) } 

# simplify expressions now that we have an explicit x
->(x){ :== / (:size * [Hash[x], x.uniq]) }                          

# translate to equivalent Ruby code
->(x) { [Hash[x], x.uniq].map(&:size).reduce(:==) }               

# simplify reduce over explicit array
->(x) { Hash[x].size == x.uniq.size }                             

मैं 2 बाइट्स को नए संस्करण के :uniqसाथ बदलकर बचा सकता था~:|



3

मैथेमेटिका, 35 बाइट्स

(l=Length)@Union@#==l@<|Rule@@@#|>&

शुद्ध फ़ंक्शन इनपुट और रिटर्निंग के रूप में ऑर्डर किए गए जोड़े की सूची ले रहा है Trueया False। इस तथ्य को उजागर करता है कि Union@#दोहराए गए जोड़े को हटाता है, लेकिन <|Rule@@@#|>(एक संघ) सभी को हटाता है , लेकिन एक विशेष प्रथम तत्व के साथ जोड़ी का आदेश दिया है। तो हम सिर्फ Lengthदो आउटपुट की जांच करने के लिए तुलना कर सकते हैं कि इनपुट लिस्ट एक फंक्शन है या नहीं।


3

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

nþ`ḄCȦ

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

यह काम किस प्रकार करता है

nþ`ḄCȦ  Main link. Argument: M (n×2 matrix)

nþ`     Construct the table of (a != b, c != d) with (a, b) and (c, d) in M.
   Ḅ    Unbinary; map (0, 0), (0, 1), (1, 0), (1, 1) to 0, 1, 2, 3 (resp.).
    C   Complement; map each resulting integer x to 1 - x.
     Ȧ  All; test if all resulting integers are non-zero.

3

CJam , 19 17 बाइट्स

मार्टिन एंडर के लिए धन्यवाद 2 बाइट्स सहेजे गए

0l~$2ew{:.=~!&|}/

0कार्यों के लिए और 1गैर-कार्यों के लिए आउटपुट ।

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

व्याख्या

0                     e# Push a 0. We need it for later.
 l~                   e# Read and eval a line of input.
   $                  e# Sort it by the keys.
    2ew               e# Get all consecutive pairs of the sorted list.
       {              e# For each pair of pairs:
        :.=           e#  Check if the keys are equal and if the values are equal.
           ~!&        e#  Determine if the keys are equal AND the values are not equal.
              |       e#  OR with 0. If any pair indicates that the input is not a function,
                      e#  this will become 1 (and remain 1), otherwise it will be 0.
               }/     e# (end block)

3

एपीएल (डायलॉग) , १६ १२ ११ ९ बाइट्स

(∪≡⊢)⊃¨∘∪

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

व्याख्या

             Unique, remove duplicates; (3 5) (3 5) => (3 5)
¨∘            For each element
             Pick the first sub element (3 5) (2 3) => 3 

             Check whether the arguments (listed below) are the same
             The right argument
             And the right argument with duplicates removed

0झूठे के लिए और 1सच के लिए प्रिंट


वाह, आप वास्तव में अच्छा हो रहे हैं।
'21:33


3

ब्रेनफक , 71 बाइट्स

,[[-[->>+<<]+>>],>[[->+<<->]<[<<]>]>[-<+>]<<[->+<]+[-<<]>>,]-[--->+<]>.

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

इनपुट को एक फ्लैट स्ट्रिंग के रूप में लिया जाता है: उदाहरण के लिए, पहला टेस्ट केस होगा 35356444। मूल प्रश्न में दर्शाया गया प्रतिनिधित्व प्राप्त करने के लिए, बस सही बिंदुओं पर कार्यक्रम में कुल छह अल्पविराम जोड़ें।

आउटपुट Uकार्यों के लिए और Vगैर-कार्यों के लिए है।

व्याख्या

किसी भी ASCII कोड बिंदु n के लिए, f (n) को सेल 2n + 1 पर संग्रहीत किया जाता है। कक्ष 2n और 2n + 2 कार्यशील स्थान हैं, और 0, 2, 4, 6, ... 2n-2 ब्रेडक्रंब का एक निशान हैं जो वापस सेल में ले जाता है। 0. जब इनपुट एक कार्य नहीं साबित होता है, तो f ( 0) 1 पर सेट है (विभिन्न दुष्प्रभावों के बीच)।

,                  input first key
[                  start main loop
 [-[->>+<<]+>>]    move to cell 2n, leaving a trail of breadcrumbs
 ,                 input value corresponding to current key
 >[                if key already has a value:
   [->+<<->]<      copy existing value, and compare to new value
   [<<]            if values are different, go to cell -2
   >               go back to cell 2n+1 (or -1 if mismatch)
 ]
 >[-<+>]           move existing value back to cell 2n+1 (NOP if no existing value, move the 1 from cell 0 to cell -1 if mismatch)
 <<[->+<]          copy new value to cell 2n+1 (NOP if there was already a value)
 +[-<<]>>          follow breadcrumbs back to cell 0 (NOP if mismatch)
 ,                 input next key
]                  (if mismatch, cell -2 becomes the next "cell 0", and the next key is also effectively changed by the breadcrumbs left lying around)
-[--->+<]>.        add 85 to cell 1 and output the result


2

पायथ - 9 8 बाइट्स

ql.d{Ql{

कोशिश करो

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


2

MATL , 12 बाइट्स

iFFvXu1Z)SdA

इनपुट 2-कॉलम मैट्रिक्स है, जहां पहला कॉलम कुंजी है और दूसरा मूल्य है।

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

व्याख्या

i     % Input: 2-column matrix
FFv   % Postpend a row with two zeros. This handles the empty case
Xu    % Unique rows. This removes duplicate (key, value) pairs
1Z)   % Select first column, that is, key. We need to check if all
      % keys surviving at this point are different
S     % Sort
d     % Consecutive differences
A     % Are all values nonzero?

2

PHP, 49 बाइट्स

foreach($_GET as[$x,$y])($$x=$$x??$y)-$y&&die(n);

कार्यों के लिए और nगैर-कार्यों के लिए कुछ भी प्रिंट नहीं करता है।


1

CJam , 14 11 9 बाइट्स

_&0f=__&=

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

स्टैक पर कुंजी / मान जोड़े के एक सरणी के रूप में इनपुट लेता है, 1यदि इनपुट एक फ़ंक्शन है, और 0यदि यह नहीं है , तो रिटर्न देता है ।

यह समाधान स्निपेट पर आधारित है _&, जो अपने साथ के सेट चौराहे को ले जाकर एक सरणी को डुप्लिकेट करता है। मैं इसे दो बार करता हूं, पहले पूर्ण इनपुट पर (किसी भी डुप्लिकेट कुंजी / मूल्य जोड़े से छुटकारा पाने के लिए) और फिर बस कुंजियों पर (यह देखने के लिए कि क्या कोई डुप्लिकेट कुंजी अभी भी पहले डी-डुप्लीकेशन के बाद बाकी है)।

यहाँ टिप्पणियों के साथ पूर्ण कोड है:

_&           "remove duplicate key/value pairs from input";
  0f=        "remove the values, leaving only the keys";
     _       "make a copy of the array of keys";
      _&     "remove duplicate keys from the copy";
        =    "compare the de-duplicated key array with the original";

जैसा कि आप जानते हैं, e#सीजेएम में समर्पित लाइन कमेंट सिंटैक्स है।
फल तोड़ना

1

रूबी, 39 30 29 बाइट्स

9 बाइट बचाने के लिए @ValueInk को धन्यवाद !

->x{Hash[x].size==(x|x).size}

पोर्ट ऑफ़ @ रॉड का पायथन 2 उत्तर


Hash[x]बस के रूप में अच्छी तरह से tbh काम करता है
मूल्य इंक

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