स्ट्रिंग्स के रूप में दिए गए दो नंबरों की तुलना करें


21

मुझे काम पर समस्या है। मुझे दो संख्याओं की तुलना करने की आवश्यकता है जो दो अलग-अलग डेटाबेस से स्ट्रिंग के रूप में आते हैं। नंबर अग्रणी शून्य और / या अग्रणी / अनुगामी रिक्त स्थान के साथ आ सकते हैं। तो मेरे पास "0001 "एक डेटाबेस " 1 "से और दूसरे से हो सकता है ।

मैंने निम्नलिखित कोड के साथ C # में समस्या हल की:

Func<string, string, bool> f = (a,b) => int.Parse(a.Trim()) == int.Parse(b.Trim())

चुनौती

यह एक बहुत ही सरल चुनौती है, शुरुआती और किसी भी प्रकार की गूढ़ भाषाओं के लिए उपयुक्त है। दो संख्याओं को देखते हुए, जो कि प्रमुख शून्य और / या अग्रणी / अनुगामी रिक्त स्थान के साथ आ सकते हैं, सबसे छोटा कोड लिखते हैं जो जाँचता है कि क्या दो तार एक ही संख्या का प्रतिनिधित्व करते हैं।

  • आदानों को आपकी भाषा में दो तार या समतुल्य होना चाहिए (एक वर्ण सरणी ठीक है), और वे हमेशा शून्य से अधिक पूर्णांक मानों का प्रतिनिधित्व करेंगे।
  • आउटपुट किसी भी दो सुसंगत मूल्यों का होना चाहिए जो एक सत्य मूल्य और एक गलत मूल्य का प्रतिनिधित्व करते हैं।

उदाहरण

A          B          Result
----------------------------
"0001"     "1    "    true
"1450"     "1450 "    true
"0010001 " " 10001  " true
"0010000"  "  10  "   false
"101023"   "101024"   false

यह , इसलिए प्रत्येक भाषा की जीत के लिए सबसे छोटा कोड हो सकता है!



8
कम से कम यह इस बार आपके बच्चों से प्रेरित नहीं है ...
caird coinheringaahing

2
@cairdcoinheringaahing मेरा अपना काम मेरी प्रेरणा का दूसरा स्रोत है। मुझे पता है कि यह एक बहुत ही सरल चुनौती है, लेकिन मुझे लगता है कि इन आसान चुनौतियों की भी कभी-कभी आवश्यकता होती है। मैं अगली बार कुछ और मुश्किलों के साथ आने की कोशिश करूंगा।
चार्ली

वैसे, ऐसा लगता है कि मेरी कार्य-प्रेरित चुनौतियां या तो बहुत आसान हैं या बहुत कठिन ...
चार्ली

@JonathanAllan नहीं, प्रत्येक इनपुट स्ट्रिंग केवल एक नंबर का प्रतिनिधित्व करेगी। वहाँ किसी भी रिक्त स्थान नहीं होगा तार inbetween।
चार्ली

जवाबों:


22

जावास्क्रिप्ट , 11 बाइट्स

a=>b=>+a==b

जावास्क्रिप्ट के कास्टिंग के नियमों का दुरुपयोग थोड़ा; एक संख्यात्मक प्रकार में +acoerces a

-6 बाइट्स शैगी और मार्टिन एंडर का धन्यवाद

इसके अलावा LiefdeWen द्वारा एक शांत ले :

a=>b=>~~a==~~b

2
PPCG में आपका स्वागत है। आप इसे कर सकते हैं 11 बाइट्स में करी का उपयोग करके और केवल एक इनपुट को एक पूर्णांक में परिवर्तित करके: tio.run/##y0osSyxOLsosKNHNy09J/… / साथ ही ध्यान दें, जब तक कि कोई फ़ंक्शन स्वयं को संदर्भित नहीं करता है, आपको चर को शामिल करने की आवश्यकता नहीं है अपने बाइट गिनती में असाइनमेंट।
झबरा

2
PPCG में आपका स्वागत है! फ़ंक्शंस ठीक हैं इसलिए आपको ज़रूरत नहीं है c=, और करी भी ठीक है ताकि आप a=>b=>...इसके बजाय उपयोग कर सकें (a,b)=>। अंत में, मेरा जावास्क्रिप्ट थोड़ा कठोर है, लेकिन मुझे लगता है कि कुछ !(a-b)ऐसा भी काम करेगा?
मार्टिन एंडर

1
अपने समाधानों से बाइट्स को निचोड़ने के लिए अधिक तरकीबों के लिए ES6 (और सामान्य जेएस गोल्फिंग टिप्स ) में गोल्फिंग के लिए टिप्स देखें ।
झबरा

1
शांत छंद शांत है, लेकिन दायरे में सीमित है, '9123456789' और '533522197' इनपुट का प्रयास करें। ये पूर्णांक मानों के स्ट्रिंग रैपर्सेंटेशन हैं, जावास्क्रिप्ट में पूर्णांकों की वैध सीमा के अंदर अच्छी तरह से हैं (लेकिन 32 बिट से अधिक)
edc65

1
आपका पाठ अब कोड से मेल नहीं खाता; कोई घटाव नहीं है। आप aएक संख्यात्मक प्रकार के लिए एकजुट के साथ जबरदस्ती कर रहे हैं +
पीटर कॉर्डेस

18

05AB1E , 1 बाइट

Q

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

व्याख्या

समानता की तुलना Qस्वचालित रूप से तुलना करने से पहले स्ट्रिंग्स का मूल्यांकन करने की कोशिश करेगी।


क्या सचमे? और मुझे लगा कि |0+Qयह काफी कम है ...
एरिक द आउटगेलर

18

ऑपरेशन फ्लैशपॉइंट स्क्रिप्टिंग भाषा, 33 बाइट्स

f={call format(["%1==%2"]+_this)}

के साथ बुलाना:

hint format["%1\n%2\n%3\n%4\n%5",
    ["0001", "1    "] call f,
    ["1450", "1450 "] call f,
    ["0010001 ", " 10001  "] call f,
    ["0010000", "  10  "] call f,
    ["101023", "101024"] call f]

आउटपुट:

वैकल्पिक संस्करण (41 बाइट्स):

f={{t=call _x;r=t==s;s=t}forEach _this;r}

अभी भी 5 बाइट्स अधिक सीधी से छोटी हैं f={t=_this;call(t select 0)==call(t select 1)}

39 बाइट्स:

f={{t=call _x;r=t==s;s=t}count _this;r}

count(जो किसी सरणी के आकार को लौटाता है) इसके बजाय काम करता है forEach, क्योंकि आप इसे एक "लैम्ब्डा" दे सकते हैं, जिसका उपयोग केवल शर्त के तत्वों को गिनने के लिए एक शर्त के रूप में किया जाता है। इस मामले में उपयोग की गई "स्थिति" एक मान्य स्थिति नहीं है, लेकिन यह यहां कोई फर्क नहीं पड़ता क्योंकि यह एक त्रुटि का कारण नहीं है और इस के वापसी मूल्य की countआवश्यकता नहीं है।


7
मुझे उन स्थितियों की विविधता पसंद है, जिन्हें आप अपने कोड के स्क्रीनशॉट में लेते हैं।
.urous

11

टैक्सी , 488 बाइट्स

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to The Babelfishery.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:s 1 l 1 r.Pickup a passenger going to Equal's Corner.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:n 1 l 1 l 1 l.Switch to plan "b" if no one is waiting.'1' is waiting at Writer's Depot.[b]'0' is waiting at Writer's Depot.Go to Writer's Depot:n 1 l 1 r.Pickup a passenger going to Post Office.Go to Post Office:n 1 r 2 r 1 l.

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

Ungolfed:

Go to Post Office: west 1st left 1st right 1st left.
Pickup a passenger going to The Babelfishery.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery: south 1st left 1st right.
Pickup a passenger going to Equal's Corner.
Pickup a passenger going to Equal's Corner.
Go to Equal's Corner: north 1st left 1st left 1st left.
Switch to plan "b" if no one is waiting.
'1' is waiting at Writer's Depot.
[b]
'0' is waiting at Writer's Depot.
Go to Writer's Depot: north 1st left 1st right.
Pickup a passenger going to Post Office.
Go to Post Office: north 1st right 2nd right 1st left.

टैक्सी इस चुनौती के अनुकूल (अपेक्षाकृत) है क्योंकि स्ट्रिंग्स केवल इनपुट या आउटपुट प्रकार की अनुमति है। The Babelfisheryवह है जो स्ट्रिंग को संख्या (और इसके विपरीत) में परिवर्तित करता है और यह सभी रिक्त स्थान और अग्रणी शून्य को संभालता है। यदि -पहले अंक से ठीक पहले यह नकारात्मक संख्या को भी संभाल लेगा । उसके बाद, Equal's Cornerएक दूसरे के खिलाफ दो मूल्यों की जांच करता है और Writer's Depotस्ट्रिंग प्रारूप में आउटपुट प्रदान करता है। आउटपुट सत्य के लिए है 1और 0झूठी के लिए है।


1
अच्छा है! जिज्ञासा से बाहर, डिबग विंडो संदेश क्यों दिखा रहा है error: The boss couldn't find your taxi in the garage. You're fired!?
चार्ली

6
@Charlie टैक्सी को आपको अपने मार्ग से पूरा करने पर टैक्सी गैरेज में वापस जाने की आवश्यकता होती है। यदि आप कार वापस नहीं लाते हैं, तो आप निकाल दिए जाते हैं। (आपको हर हाल में रोकना और फिर से ईंधन भरना सुनिश्चित करना होगा या आप गैस से बाहर भागेंगे।) कोड-गोल्फ सवालों में जो STDERR को आउटपुट नहीं देते हैं, मैं आमतौर पर निकाल पाने के बारे में चिंता नहीं करता। यदि आप अपनी नौकरी खोना नहीं चाहते हैं तो आप इस त्रुटि से छुटकारा पा सकते हैं:Go to Taxi Garage:n 1 r 1 l 1 r.
इंजीनियर टोस्ट

यह उत्तर और इसकी टिप्पणियाँ पूरी तरह से अतार्किक हैं। मैं इस समुदाय से प्यार करता हूं।
राइट लेग

@RightLeg मेरा पसंदीदा टैक्सी प्रोग्राम मैंने लिखा है मुझे दो सप्ताह और बहुत डिबगिंग में लिया है। आप वास्तव में एक यात्रा चाहते हैं, हालांकि? शेक्सपियर की जाँच करें ।
इंजीनियर टोस्ट

10

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

f(s,t){s=atoi(s)==atoi(t);}

साथ में -O0 (जो डिफ़ॉल्ट सेटिंग है)।

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

सी, 32 बाइट्स

f(s,t){return atoi(s)==atoi(t);}

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


2
@Charlie C में, स्ट्रिंग्स एरे की हैं char, और जब आप किसी फ़ंक्शन के लिए एक सरणी पास करते हैं, तो आप वास्तव में पॉइंटर को सरणी के पहले तत्व में पास करते हैं। यहां, charसरणियों के बिंदुओं को संक्षेप में फ़ंक्शन में पास होने पर पूर्णांकों में बदल दिया जाता है, और कॉल करने पर पूर्णांक वापस बिंदुओं में परिवर्तित हो जाते हैं atoi
स्टेडीबॉक्स

1
जो कि एक मंच पर बुरी तरह से उड़ सकता है, जहां संकेत
चींटियों की

2
यदि आप s=foo;इसके बजाय हास्यास्पद बकवास का उपयोग करना चाहते हैं , return foo;तो इसे "अनुकूलन अक्षमता के साथ x86 जीसीसी" के रूप में लेबल करने की आवश्यकता है, न कि केवल "सी", क्योंकि यह कोड कार्यान्वयन के रूप में छोड़कर एक मूल्य वापस नहीं करता है।
पीटर कॉर्डेस

2
मैं यह देखने के लिए गया कि क्या वास्तव में टूटने के s=retval;बजाय कोई return retval;वास्तुदोष था। ऐसा लगता है कि जीसीसी का आंतरिक तर्क ( -O0केवल के साथ ) वास्तव में अंतिम अभिव्यक्ति को रिटर्न वैल्यू के रूप में मानता है, शायद उसी तरह जो जीएनयू सी स्टेटमेंट-एक्सप्रेशन काम करता है। (लेकिन इसकी आवश्यकता है s=)। ARM32 पर, यह ==परिणाम की गणना करता है r3, और फिर mov r0, r3वापसी मूल्य बनाने के लिए एक अतिरिक्त का उपयोग करता है ! तो यह एक x86- विशिष्ट हैक नहीं है, यह एक gcc -O0हैक है जो gcc समर्थन करने के लिए अपने रास्ते से बाहर जाने लगता है।
पीटर कॉर्डेस

2
@ KenY-N आप सी कोड गोल्फ के पूरे बिंदु को याद कर रहे हैं। यह उन विशिष्ट हैकिंग एज मामलों को खोजने के बारे में है, जहां आप कम से कम कोड की इनपुट कर सकते हैं और पोर्टेबल अनुभव प्रदान नहीं करते हुए इच्छित परिणाम प्राप्त कर सकते हैं।

8

जे , 4 बाइट्स

=&do

मूल्यांकन करने के =बाद तुलना करें । इसे ऑनलाइन भी आज़मा सकते हैं!&do=&".


दिलचस्प रूप से यह दोनों नकारात्मक के लिए काम करेगा क्योंकि अन्य भाषाएं उन्हें समझती हैं (जैसे -10) और नकारात्मक क्योंकि जे उन्हें समझता है (उदाहरण के लिए _10) जिस तरह से -काम करता है।
कोल

6

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

.+
$*
D`
¶$

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

इनपुट को अलग किया गया है, लेकिन टेस्ट सूट सुविधा के लिए कॉमा सेपरेशन का उपयोग करता है। प्रिंटों1समानता के लिए और 0असमानता के लिए ।

व्याख्या

.+
$*

प्रत्येक पंक्ति को एकात्मक में बदलें। यह अग्रणी शून्य और स्थानों की उपेक्षा करता है।

D`

डेडुप्लिकेट: यदि दोनों समान हैं तो दूसरी पंक्ति को साफ़ करें।

¶$

जांचें कि स्ट्रिंग अब एक पंक्ति में समाप्त हो गई है।




3

त्रिकोणीयता , 17 बाइट्स

..)..
.Ii).
@Ii=.

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

त्रिकोणीयता, एक बार, प्रतिस्पर्धी के लिए है!

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

त्रिकोणीयता को डॉट्स के त्रिकोणीय वितरण के लिए कोड की आवश्यकता होती है। यही है, प्रत्येक पंक्ति की लंबाई 2 से गुणा की गई पंक्तियों की संख्या के बराबर होनी चाहिए और घटती है, और प्रत्येक पंक्ति के पास (प्रत्येक तरफ) प्रोग्राम में इसकी स्थिति के बराबर डॉट्स की एक संख्या होनी चाहिए (नीचे की पंक्ति पंक्ति 0 है,) यह ऊपर वाला पंक्ति 1 है और आगे)। इसे ध्यान में रखते हुए, आइए विश्लेषण करें कि कोड कैसे काम करता है:

..).. || Push a 0 onto the stack.
.Ii   || Get the 0th input and cast it to an integer.
   ). || Push another 0 onto the stack.
@I    || Increment the ToS => 1. Get the first input.
  i=. || Then cast it to an integer and compare their equality.

3

ऐलिस , 7 बाइट्स

X/n
o@i

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

कोई भी गैर-अंक विभाजक काम नहीं करता है। 1समानता के लिए प्रिंट और 0अन्यथा।

व्याख्या

X   XOR, does nothing.
/   Switch to Ordinal mode.
i   Read all input as a string.
/   Switch to Cardinal mode.
X   XOR. Implicitly finds all integers in the string and pushes them separately
    onto the stack. The XOR gives 0 if the values are identical.
n   Logical NOT. Gives 1 for equal inputs and 9 otherwise.
/   Switch to Ordinal.
o   Print the 0 or 1 as a string.
/   Switch to Cardinal.
@   Terminate the program.

3

जाप , 3 बाइट्स

¥Vn

कोशिश करो

दूसरे इनपुट को पूर्णांक में परिवर्तित करता है और पहले के साथ समानता की तुलना करता है।



3

jq, 24 अक्षर

map(tonumber)|.[0]==.[1]

2 तार एक सरणी के आइटम के रूप में पारित किए जाते हैं।

नमूना रन:

bash-4.4$ jq 'map(tonumber)|.[0]==.[1]' <<< '["0010001 ", " 10001  "]'
true

bash-4.4$ jq 'map(tonumber)|.[0]==.[1]' <<< '["0010000", "  10  "]'
false

इसे ऑनलाइन आज़माएं! ( सभी परीक्षण मामले )



3

पॉवरशेल , 20 बाइट्स

param($a,$b)+$a-eq$b

जावास्क्रिप्ट जवाब के समान, सिर्फ इसलिए क्योंकि PowerShell में करी नहीं है। +पूर्णांक को पूर्णांक में डालने के लिए उपयोग करता है, और फिर -equals स्वचालित रूप से दूसरे स्ट्रिंग को पूर्णांक में डाल देता है। आउटपुट सही / गलत है।

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


3

पॉवरशेल , 19 बाइट्स

$args-join'-eq'|iex

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

-join$argsतुलना ऑपरेटर ( -eq) के स्ट्रिंग प्रतिनिधित्व के साथ तर्क सरणी ( ) तब अभिव्यक्ति का मूल्यांकन Invoke-Expression( iex) के साथ करती है ।


दिलचस्प। मुझे आश्चर्य है कि आप पूर्णांक में डाली जाने की आवश्यकता के बिना कैसे प्राप्त करते हैं, जबकि अगर मैं +स्ट्रिंग समानता की जाँच कर रहा हूं, तो मेरा टूट जाता है ।
AdmBorkBork

@AdmBorkBork क्योंकि मैं अनिवार्य रूप से PowerShell कोड उत्पन्न कर रहा हूं और फिर इसे निष्पादित कर रहा हूं, और चूंकि अग्रणी शून्य और अग्रणी / अनुगामी रिक्त स्थान दुभाषिया के लिए मायने नहीं रखते हैं, यह "बस काम करता है"। यदि 2 नंबर हैं 00009 और 077 फिर परिणामी कोड है 00009 -eq077 , तो कोड का पूरी तरह से मान्य टुकड़ा है। आप सीधे रनवे पर स्ट्रिंग के साथ काम कर रहे हैं, इसलिए आपको इसे पहले डालना होगा इसलिए ऑपरेशन एक संख्यात्मक पर किया जाता है।
briantist

सही, हाँ, यह समझ में आता है। स्पष्टीकरण के लिए धन्यवाद।
AdmBorkBork

3

क्यू (Kdb +), 13 बाइट्स

=/["J"$(x;y)]

व्याख्या

(x; y): दो इनपुट की एक सूची।

"जे" $: प्रत्येक इनपुट को स्ट्रिंग (10c) से लंबे (7j) प्रकार के लिए इनपुट करना, जो सही ढंग से व्याख्या कर सकता है
सफेद स्थान और अग्रणी 0s की ।

= /: एक सूची में तत्वों पर समानता की जाँच करता है (प्रत्येक बाद की जोड़ी)।
जैसा कि केवल एक जोड़ी है, एकल बूलियन 0 बी / 1 बी देता है।


PPCG में आपका स्वागत है! आमतौर पर, एक ऑनलाइन दुभाषिया / संकलक के लिए एक लिंक की सराहना की जाती है, और यदि स्पष्ट नहीं है, तो एक स्पष्टीकरण भी।
फंतासी

धन्यवाद! स्पष्टीकरण वहाँ जोड़ा गया। मुझे संदेह है कि q के लिए एक ऑनलाइन दुभाषिया है, मैंने एक त्वरित रूप से देखा और एक नहीं ढूंढ सका।
सिडनी

मैं यह कहूंगा कि इसे लंबोदर सहित 15 बाइट्स के{=/["J"$(x;y)]} लिए लैंबडा के रूप में लिखा जाना चाहिए ... हालांकि 8 बाइट्स के लिए यह आपके पास हो सकता है: यदि आप केवल आरईपीएल का उपयोग कर रहे हैं और इनपुट को तार की सूची के रूप में पारित कर रहे हैं .. या एक समारोह के रूप में 11 के लिए । (~/)"J"${(~/)"J"$x}
स्ट्रीटस्टर

3

टी-एसक्यूएल, 35 बाइट्स

हमारे मानकों के अनुसार , डेटा फ़ील्ड के tसाथ पूर्व-मौजूदा तालिका के माध्यम से इनपुट है और ।varcharab

    SELECT IIF(ABS(a)=ABS(b),1,0)FROM t

1अगर वे मेल खाते हैं, तो रिटर्न0 यदि वे ऐसा नहीं करते।

एसक्यूएल के कुछ गणितीय कार्य (सहित ABS, FLOORऔर CEILING) यदि स्ट्रिंग पैरामीटर दिए गए हैं, तो यह संख्यात्मक का एक अंतर्निहित रूपांतरण करेगा, यह एक स्पष्ट से छोटा है , CAST(a AS INT)या CONVERT(INT,b)इस मामले में काम करता है क्योंकि हम जानते हैं कि इनपुट मान हमेशा सकारात्मक होते हैं।

IIF MS SQL 2012 और इसके बाद के संस्करण के लिए विशिष्ट है, इसलिए अन्य कार्यान्वयन के बारे में कोई गारंटी नहीं है।


3

एक्सेल VBA, 27 16 बाइट्स

-9 @Nayrb और @TaylorScott को धन्यवाद

[C1]=[A1]-[B1]=0

जहाँ आप सेल के साथ मानों को इनपुट करते हैं 'string

कहां xऔर yइनपुट स्ट्रिंग्स हैं और zएक बूलियन आउटपुट है।

यदि CInt (x) = CInt (y) तो z = 1

CInt का उपयोग करना


1
क्यों नहीं: z = xy = 0?
नायरब

दुर्भाग्य से यह समाधान अमान्य है क्योंकि यह इनपुट नहीं लेता है और पूर्वनिर्धारित मान ( जो समुदाय के नियमों के खिलाफ समझा गया है ) पर निर्भर करता है और एक चर पर आउटपुट होता है ( जो कि सामुदायिक नियमों के खिलाफ भी है )
टेलर स्कॉट

एक वैध समाधान के रूप में शायद एक vbe तत्काल विंडो फ़ंक्शन जैसे ?[Int(A1)=Int(B1)]कि रेंज से इनपुट लेता है A1और B1VBE तत्काल विंडो में आउटपुट करता है
टेलर स्कॉट

3

आर , 28 27 बाइट्स

!diff(as.double(scan(,'')))

संख्याओं को तार के रूप में पढ़ता है, उन्हें डबल्स में बदलता है और जाँचता है कि क्या उनका अंतर शून्य नहीं है।

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

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


बस ""पर्याप्त है
Giuseppe



2

गामा , २१ अक्षर

*\n*=@cmpn{*;*;0;1;0}

गामा में कोई बूलियन नहीं। चूंकि @get-switch{}/ @set-switch{}फ़ंक्शंस स्विच स्थिति का प्रतिनिधित्व करने के लिए 0 और 1 का उपयोग करते हैं, इसलिए 0 और 1 का भी उपयोग किया जाता है।

2 तार अलग इनपुट लाइनों पर पारित किए जाते हैं।

नमूना रन:

bash-4.4$ gema '*\n*=@cmpn{*;*;0;1;0}' <<< $'0010001\n10001  '
1

bash-4.4$ gema '*\n*=@cmpn{*;*;0;1;0}' <<< $'0010000\n  10  '
0



2

अटैची , 11 बाइट्स

Same@Map&:N

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

यह स्ट्रिंग्स की एक सरणी लेता है, जैसे कि V["0001", "1 "]। बस कहा जाता है, Map&:Nएक ऐसा फ़ंक्शन है जो Nइसके तर्क पर मैप Sameकरता है , और जाँचता है कि सरणी में केवल समान सदस्य हैं। (मजेदार तथ्य: यह फ़ंक्शन 2 से अधिक स्ट्रिंग तर्क के लिए काम करता है।)


2

SNOBOL4 (CSNOBOL4) , 42 बाइट्स

	OUTPUT =EQ(EVAL(INPUT),EVAL(INPUT)) 1
END

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

सत्य के लिए आउटपुट 1, फाल्स के लिए कुछ भी नहीं। चूंकि (स्पेस) SNOBOL में कंसट्रक्शन ऑपरेटर है, इसलिए EVALनंबर को लीडिंग / ट्रेलिंग स्पेस के साथ इंगेज करता है, जिससे नंबर खुद ब खुद निकलता है, और यह किसी भी लीडिंग जीरो का बड़े करीने से ख्याल रखता है। EQसंख्यात्मक समानता के लिए परीक्षण, सशर्त रूप OUTPUTसे 1 पर सेट करना Success


2

सिनक्लेयर ZX81 / टाइमेक्स TS1000 / 1500 बेसिक, ~ 29 टोकन बाइट्स

नील के लिए नया समाधान धन्यवाद (टिप के लिए धन्यवाद)।

 1 INPUT A$
 2 INPUT B$
 3 PRINT VAL A$=VAL B$

इस समाधान के लिए उपयोगकर्ता इनपुट की आवश्यकता होती है, इसलिए सफेद रिक्त स्थान और / या अग्रणी शून्य के साथ दो तार में प्रवेश करें, या गैर-बराबर संख्यात्मक मान के दो तार दर्ज करें; 0गलत है और1 यह सच है एक बार लाइन तीन ने दर्ज किए गए प्रत्येक स्ट्रिंग के मूल्य की तुलना की है।

पुराना समाधान: सिनक्लेयर ZX81 / टाइमेक्स TS1000 / 1500 बेसिक, ~ 46 टोकन बाइट्स

 1 LET A$=" 001 "
 2 LET B$="1"
 3 PRINT (VAL A$=VAL B$)

वास्तविक जांच लाइन तीन में की जाती है, जो केवल ~ 16 टोकन बेसिक बाइट्स है; इसलिए प्रत्यक्ष मोड का उपयोग करके प्रत्येक टेस्ट केस जोड़ी में प्रवेश करने से लिस्टिंग से ~ 30 बाइट्स बचेंगे। ध्यान दें कि इस बाइट काउंट में शामिल नहीं है var stack


1
आप का उपयोग नहीं करना चाहिए INPUT A$और INPUT B$? इसके अलावा, मुझे नहीं लगता कि आपको एस की जरूरत है ()
नील

हां, मैं इसका उपयोग भी कर सकता हूं - मैं सिर्फ अवधारणा का एक प्रमाण चाहता था
शॉन बीबर्स

2

एपीएल (NARS2000) , 7 बाइट्स

=⍥⍎

ठीक है, हाँ, मुझे पता है कि NARS2000 यूनिकोड का उपयोग करने के बाद से यहाँ Dyalog पर प्रतिस्पर्धा नहीं कर सकता है, लेकिन मैंने सोचा कि मैं इसे दिखाऊंगा ( NARS2000 में रचना कहा जाता है , भले ही यह वास्तव में फ़ंक्शन संरचना के लिए असंबंधित है), कुछ Dyals नहीं करता है बिल्ट-इन के रूप में है और मैंने यहां कभी इस्तेमाल नहीं किया है। Dyalog में, इसे लागू किया जाना है {(⍵⍵⍺)⍺⍺⍵⍵ ⍵}। यह क्या करता है बाएं और दाएं तर्क दोनों पर दाहिने ऑपरेंड मोनैडिक फ़ंक्शन को कॉल करें, और फिर परिणामों पर बाएं ऑपरेंड डायएडिक फ़ंक्शन को कॉल करें।

यहाँ, दायाँ ऑपरेंड है ( Execute , अर्थात eval) और बायाँ ऑपरेंड है =( समान होना , यानी जांचें कि इसके तर्क बराबर हैं)।


क्या संरचना और निष्पादन को व्हॉट्सएप के रूप में प्रस्तुत करना चाहिए?
जॉन ड्वोरक

@ जॉनडॉवर्क उम, नहीं? वे व्हाट्सएप नहीं हैं, दूसरा चार्ट U + 2365 APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS है और तीसरा U + 234E APL FUNCTIONAL SYMBOL DOWN TOT है।
आउटगोल्फर

@JohnDvorak जिस भी फ़ॉन्ट को आप देख रहे हैं, उन कोडपॉइंट के लिए प्रतीक नहीं हो सकते हैं।
Οurous

@ ,Urous मुझे बहुत संदेह है कि यह भी मामला है, लेकिन यदि आप अच्छी तरह से अपडेट किए गए सॉफ़्टवेयर का उपयोग कर रहे हैं, तो आपको ऐसे वर्णों को देखने में कोई समस्या नहीं होनी चाहिए।
आउटगॉल्फ़र
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.