हाँ या ना


28

संभवतया सबसे कम बाइट्स में, यह निर्धारित करें कि क्या दो मान प्रत्येक मिलान को निम्न में से एक देते हैं:

पहला मूल्य

2      string or integer - whichever you prefer
to     case insensitive
too    case insensitive
two    case insensitive
t0     case insensitive (t zero)

दूसरा मूल्य

b      case insensitive
be     case insensitive
bee    case insensitive
b3     case insensitive

उदाहरण

2          'Bee'            true
'2'        'b'              true
'not to'   'be'             false
'that is'  'the question'   false

5
N0 l33t? "
T0

7
क्यों यह एक समारोह होना चाहिए ?
डेनिस

2
@ rybo111 खैर! ऐसा लगता है कि वे इस अवधारणा को तब समझ नहीं पाए;)
ड्रेको

13
यह एक शेक्सपियर समाधान के लिए भीख माँगता है । निस्संदेह, प्रतिस्पर्धा के रूप में बाइट की गिनती निस्संदेह बहुत बड़ी होगी ...
डारेल हॉफमैन

1
@LuisMendo ठीक है। कुछ भी चलेगा। दोनों का समर्थन आवश्यक नहीं है।
rybo111

जवाबों:


34

शेक्सपियर , 4778 बाइट्स

नोट: यह उत्तर एक गंभीर प्रतियोगी होने के लिए नहीं है

To Be or Not To Be, This is the Answer.

Hamlet, the main player in our story.
Horatio, Hamlet's guide through his internal struggles.
The Ghost, a handsome honest bold fair gentle king.
Claudius, the worthless usurper of the throne.
Ophelia, who Hamlet always writes two.
Polonius, the unfortunate third man caught between Hamlet and Claudius.
Brabantio, the greater.
Banquo, the lesser.
Emilia, the greater.
Egeus, the lesser.
Othello, the greater.
Orsino, the lesser.
Tybalt, the greater.
Titania, the lesser.
Valentine, who doubled is greater.
Viola, who doubled is lesser.

Act I: A simple question in so many words.

Scene I: Hamlet passes judgment over the cast.

[Enter Hamlet and Horatio]
Hamlet:
    Thou art the sum of a good healthy sunny warrior and a lovely day.
[Exit Horatio]
[Enter Claudius]
Hamlet:
    Thou art the sum of The Ghost and warm cute brave trustworthy hero.
[Exit Claudius]
[Enter Ophelia]
Hamlet:
    Thou art the sum of Claudius and a smooth spaceman.
[Exit Ophelia]
[Enter Polonius]
Hamlet:
    Thou art the sum of Ophelia and a plum.
[Exit Polonius]
[Enter Brabantio]
Hamlet:
    Thou art the sum of The Ghost and the sum of The Ghost and a rich kingdom.
[Exit Brabantio]
[Enter Banquo]
Hamlet:
    Thou art the sum of Brabantio and The Ghost.
[Exit Banquo]
[Enter Emilia]
Hamlet:
    Thou art the sum of Brabantio and the sum of joy and a gentle girl.
[Exit Emilia]
[Enter Egeus]
Hamlet:
    Thou art the sum of Emilia and The Ghost.
[Exit Egeus]
[Enter Othello]
Hamlet:
    Thou art the sum of Emilia and the sum of a cunning lover and the sweetest golden embroidered rose.
[Exit Othello]
[Enter Orsino]
Hamlet:
    Thou art the sum of Othello and The Ghost.
[Exit Orsino]
[Enter Tybalt]
Hamlet:
    Thou art the sum of Othello and the sum of happiness and fair fine heaven.
[Exit Tybalt]
[Enter Titania]
Hamlet:
    Thou art the sum of Tybalt and The Ghost.
[Exit Titania]
[Enter Valentine]
Hamlet:
    Thou art the sum of Tybalt and the sum of a happy day and a pony.
[Exit Valentine]
[Enter Viola]
Hamlet:
    Thou art the sum of Valentine and The Ghost.
[Exeunt]

Scene II: The beginning of Horatio's interrogation.
[Enter Hamlet and Horatio]
Hamlet:
Horatio:
    Open your mind.
    Art thou as good as Tybalt?  If so, let us proceed to Scene IV.
    Art thou as good as Titania?  If so, let us proceed to Scene IV.
    Art thou as good as Ophelia?  If not, let us proceed to Scene XII.


Scene III: Are we to?
Horatio:
    Open your mind.
    Art thou as good as The Ghost?  If so, let us proceed to Scene VII.
    Let us proceed to Scene XII.

Scene IV: Can we go further than t?
Horatio:
    Open your mind.
    Art thou as good as Claudius?  If so, let us proceed to Scene III.
    Art thou as good as Valentine?  If so, let us proceed to Scene VI.
    Art thou as good as Viola?  If so, let us proceed to Scene VI.
    Art thou as good as Othello?  If so, let us proceed to Scene V.
    Art thou as good as Orsino?  If not, let us proceed to Scene XII.

Scene V: Oone oor twoo?
Horatio:
    Open your mind.
    Art thou as good as The Ghost?  If so, let us proceed to Scene VII.
    Art thou as good as Othello?  If so, let us proceed to Scene III.
    Art thou as good as Orsino?  If so, let us proceed to Scene III.
    Let us proceed to Scene XII.

Scene VI: Hamlet desperately searches for whOo?.
Horatio:
    Open your mind.
    Art thou as good as Othello?  If so, let us proceed to Scene III.
    Art thou as good as Orsino?  If so, let us proceed to Scene III.
    Let us proceed to Scene XII.

Scene VII: Knowing to, what to do?
Horatio:
    Open your mind.
    Art thou as good as Brabantio?  If so, let us proceed to Scene VIII.
    Art thou as good as Banquo?  If not, let us proceed to Scene XII.

Scene VIII: Learning what to Bleive.
Horatio:
    Open your mind.
    Art thou as good as me?  If so, let us proceed to Scene XI.
    Art thou as good as Emilia?  If so, let us proceed to Scene X.
    Art thou as good as Egeus?  If so, let us proceed to Scene X.
    Art thou as good as Polonius?  If not, let us proceed to Scene XII.

Scene IX: The Eend is nigh?
Horatio:
    Open your mind.
    Art thou as good as me?  If so, let us proceed to Scene XI.
    Let us proceed to Scene XII.

Scene X: Wee may havee succeeeedeed.
Horatio:
    Open your mind.
    Art thou as good as Emilia?  If so, let us proceed to Scene IX.
    Art thou as good as Egeus?  If so, let us proceed to Scene IX.
    Art thou as good as me?  If not, let us proceed to Scene XII.

Scene XI: Hamlet is at peace.
Horatio:
    Thou art a beacon of happiness. 
    Let us proceed to Scene XIII

Scene XII: The demons have won.
Horatio:
    Thou art nothing.

Scene XIII: Hamlet opens up.
Horatio:
    Hamlet! Open your heart.
[Exeunt]

आउटपुट 0 यदि असत्य है, 1 यदि सत्य है।

यह आसानी से छोटा हो सकता है (और यदि लोग मुझे वास्तव में चाहते हैं, तो शब्द की लंबाई में कटौती की जा सकती है), लेकिन ऐसा करने के लिए अच्छे राजभाषा 'विल' के चेहरे पर एक थप्पड़ होगा। मैंने हमेशा महसूस किया है कि होरेटो हेमलेट के अनसंग नायक हैं, इसलिए मैंने यह सुनिश्चित किया कि वह हेमलेट के लिए गहन एकालाप देने वाला व्यक्ति था जहां हेमलेट को अंततः यह साबित करना है कि वह होरिटो (जो नई रेखा का प्रतिनिधित्व करता है) के रूप में अच्छा है।

कोड ही बहुत सरल है। सभी वर्णों में से हैमलेट एससीआई मूल्य (क्रम में newline,space,0,2,3,B,b,E,e,O,o,T,t,V,v) हैं और फिर कोड एक साधारण राज्य मशीन (विशेष रूप से, एक डीएफए ) है जो Scene XIएक स्वीकृत स्थिति के Scene XIIरूप में और एक अस्वीकार राज्य के रूप में परिवर्तित होती है ।

यह वह बुनियादी चीज है जिससे मैंने काम किया

इसे बनाने के बाद, मैंने सिर्फ शेक्सपियर में प्लग किया, इस तथ्य का उपयोग करते हुए कि मैं अगले राज्य में नीचे गिर सकता हूं जब वे संख्यात्मक रूप से आसन्न थे। मैंने इसे केवल शेक्सपियर के संस्करण के साथ परीक्षण किया था जिसे मैंने शीर्षक में जोड़ा था, लेकिन मुझे विश्वास है कि हम एक कार्यान्वयन iirc द्वारा एक भाषा को परिभाषित करते हैं।


2
जब मैंने इस प्रश्न को पोस्ट किया, तो मैंने कभी नहीं सोचा था कि मुझे इस तरह के एक जटिल और अभी तक बहुत उपयुक्त उत्तर मिलेगा!
rybo111

18

रेटिना , 28

  • 1 बाइट ने @ मार्टिनबटनर को धन्यवाद दिया।

संभवतः ओपी के 9 मिनट बाद - मेरा सबसे तेज़ कोड-गोल्फ उत्तर है।

इनपुट पैरामीटर अल्पविराम से अलग किए गए हैं। सत्य के लिए आउटपुट 1 और फालसे के लिए 0 है।

i`^(2|t[ow]?o|t0),b(e?e?|3)$

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


मैं हमेशा इसे प्यार करता हूँ जब फिक्सिंग कीड़े बाइट्स बचाता है!
नील

5
@Neil yep - हटाए गए कोड को डिबग किया गया कोड है :)
डिजिटल ट्रॉमा

1
@DigitalTrauma सच में, हमारे बहादुर नई दुनिया में केवल पर्याप्त रूप से दंडित कोड की अनुमति दी जा सकती है।
FryAmTheEggman

7

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

.A}Lrw1c2c." Wô-WûÄæ­§Òé
}

इसे ऑनलाइन आज़माएँ: प्रदर्शन

स्पष्टीकरण:

          ."...   packed string, gets decoded to: "2 TO TOO TWO T0 B BE BEE B3"
         c        split by spaces
       c2         split into 2 lists: [['2', 'TO', 'TOO', 'TWO', 'T0'], 
                                       ['B', 'BE', 'BEE', 'B3']]
   L              for each list:
     w               read a line
    r 1              convert it to uppercase
  }                  and test if it is part of this list list
.A                test if both return true

किसी तरह अगर मैं पैक किए गए स्ट्रिंग से पहले कोड हटा देता हूं, तो स्ट्रिंग टूट जाती है।
बुसकुक्सुआन 21

@FryAmTheEggman मैंने किया। आउटपुट "" था! $ 7C <Q / = / LF $ VF4K: .- E "
बुसुकुआन

@FryAmTheEggman मैंने कुछ बार कोशिश की और पर्मलिंक की तुलना में, कुछ गायब था। ऐसा लगता है कि मैंने उत्तर में लिंक का उपयोग करने के बजाय कॉपी और पेस्ट किया है। मुझे नहीं पता था कि एसई में पैक्ड स्ट्रिंग्स को चिपकाने पर आपको कुछ बाइट्स याद आएंगे।
बुसुकुआन

@busukxuan हाँ, मैंने सिर्फ एक ही चीज़ पर ध्यान दिया है: पी एसई दुर्भाग्य से ज्यादातर अप्राप्य पात्रों को छुपाता है।
FryAmTheEggman 22

1
यह पहली वैल्यू के लिए कंडीशन (t शून्य) पास करने के लिए प्रतीत नहीं होता है
निक रॉबर्टसन

4

पायथ, 41 बाइट्स

&xrw0c"2 to too two t0"dxrw0c"b be bee b3

यहाँ यह कोशिश करो!

सीधी सूची की खोज। एक खाली सूची को मिथ्या मान के रूप में और एक गैर-रिक्त सूची को सत्य मान के रूप में छापता है।

तलाश या बेहतर तरीके से, मुझे वास्तव में यह पसंद नहीं है।


4

ओरेकल SQL 11.2, 86 बाइट्स

SELECT 1 FROM DUAL WHERE:1 IN('2','to','too','two','t0')AND:2 IN('b','be','bee','b3');

सत्य के लिए एक पंक्ति देता है और झूठी के लिए कोई पंक्ति नहीं।


3

05AB1E , 39 45 बाइट्स

कोड:

“2€„…«Œ† t0“' ¡)Ilrk\U“b€ïÍÝ b3“' ¡)Ilrk\>X>*

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

CP-1252 एन्कोडिंग का उपयोग करता है। सच्चाई यह है कि जब कोई संख्या आउटपुट की जाती है और झूठी होती है जब कुछ भी आउटपुट नहीं किया जाता है।

गैर-प्रतिस्पर्धात्मक संस्करण (39 बाइट्स) , नवीनतम संस्करण के साथ काम करता है:

“2€„…«Œ† t0“ð¡)IlkU“b€ïÍÝ b3“ð¡)Ilk>X>*

3

ईएस 6, 56 48 45 बाइट्स

(...a)=>/^(2|t0|t[wo]?o),b(ee?|3)?$/i.test(a)

सहेजे गए 5 बाइट @ user81655 के लिए धन्यवाद। कुछ और अनुकूलन से 3 बाइट्स सहेजे गए। @Patrick रॉबर्ट्स की बदौलत एक और 3 बाइट्स बचाए।

t[wo]?o सबसे छोटा रेगेक्स है जो मैं तीनों होमोफोन के साथ सोच सकता हूं।

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


@ user81655 बुरा नहीं है, लेकिन मैंने इसे और बेहतर कर दिया है।
नील

1
यदि आप इनपुट के लिए बाकी पैरामीटर का उपयोग करते हैं, तो यह आपको 3 बाइट्स बचाएगा:(...a)=>/^(2|t0|t[wo]?o),b(ee?|3)?$/.test(a)
पैट्रिक रॉबर्ट्स

@ पैट्रिक रॉबर्ट्स हुह, मैंने उसके बारे में सोचा था, लेकिन मुझे गलत समझना चाहिए था, क्योंकि मुझे नहीं लगता था कि मैं कुछ भी बचा रहा था।
नील

iझंडा याद आ रही है।
फ्लोरेंट

@ फ़्लोरिंग कि जगह के लिए धन्यवाद। (शायद उदाहरण सभी निचले मामले नहीं होने चाहिए ...)
नील

3

पर्ल 6, 45 44 बाइट्स

आईआरसी में लोगों की मदद करने के लिए धन्यवाद कि मैंने इसे नीचे गिरा दिया

{@_~~(~2|/:i^t[0|oo?|wo]$/,/:i^b[ee?|3]?$/)}

प्रयोग

> my &f = {@_~~(~2|/:i^t[0|oo?|wo]$/,/:i^b[ee?|3]?$/)}
-> *@_ { #`(Block|309960640) ... }
> f("2", "Bee")
True
> f("2", "b")
True
> f("not to", "be")
False
> f("that is", "the question")
False

गैर-प्रतिस्पर्धात्मक विकल्प, 54 बाइट्स

यह ऊपर का एक अच्छा विकल्प है यदि आपको लगता है कि regexes सकल हैं, लेकिन यह अधिक लंबा है। यह कुछ और बाइट्स नीचे गोल्फ हो सकता है, लेकिन जब से यह गैर प्रतिस्पर्धा है मैं इसे छोड़ दूँगा।

{@_».lc~~(qw<to too two t0 2>.any,<b be bee b3>.any)}

1
इस पर देख रहे हैं जो कोई पर्ल 6. पता नहीं है करने के लिए [और ]एक regex, जो रूप में लिखा जाएगा में एक गैर पर कब्जा समूह निरूपित (?:और )पर्ल 5. में एक चरित्र वर्ग आप उन्हें कोण कोष्ठक में लगाने की आवश्यकता प्राप्त करने के लिए <[और ]>
ब्रैड गिल्बर्ट

b2gills ++, मैंने Perl 6 regexes में अंतर का उल्लेख करने के लिए भी नहीं सोचा था
Hotkeys

मेरा पतन हुआ है क्योंकि किसी को यह पता नहीं था, इसलिए मैं हमेशा इसे इंगित करता हूं।
ब्रैड गिल्बर्ट

क्या कोई PP & CG नियम है जो आपको अपने जवाब के रूप में अधिक सुंदर गोल्फ पोस्ट करने से रोक रहा है? मुझे लगता है कि थोड़ा लंबा * संस्करण योग्य होगा। * मैं इसके द्वारा यह निर्णय लेता हूं कि सुरुचिपूर्ण गोल्फ मुहावरों में व्हॉट्सएप की देखभाल (गिनती न करना) शामिल नहीं है।
raiph

3

पायथन 2.7, 133 बाइट्स

def e(a, b):
        c, d = """2,too,to,t0,two""","""be,b,bee,b3"""
        return a.lower() in c and b.lower() in d

print e('2', 'bee')

यकीन नहीं होता है कि अगर हम टिप्पणियों में एक छोटा संस्करण है तो समाधान पोस्ट करने वाले हैं लेकिन यहाँ पायथन में मेरा संस्करण है।

संपादित करें: फ़ंक्शन के बिना यह केवल 73 बाइट्स है (और यह सबसे अच्छे उत्तरों के पास भी नहीं है। मुझे माफ कर दो मैं नया हूं

a, b = "to", "bee"
print a in "2 too to t0 two" and b in "be b bee b3"

2
PPCG में आपका स्वागत है! यदि आपने उत्तर लिखने में समय व्यतीत किया है और जवाब नहीं दिया है (बिना किसी आरोप के), तो आपका जवाब पोस्ट करने के लिए आपका स्वागत है!
डिजिटल ट्रामा

ओह और अधिकांश भाषाओं में गोल्फिंग-टिप्स शैली का सवाल है। पायथन कोई अपवाद नहीं है
डिजिटल ट्रॉमा

ध्यान दें कि यह 2(पूर्णांक) इनपुट के साथ काम करता है
wnnmaw

3
यह भी e('oo', '3')और इसी तरह के सबस्ट्रिंग के लिए सही है ।
मैनावर्क

1
@ TheLateOne, पायथन बहुत गोल्फ नहीं है, इसलिए आप लगभग गोल्फ की भाषाओं को पीथ या cjam की तरह हरा नहीं पाएंगे, लेकिन 50, 60 या 70 रेंज में प्राप्त करना अधिकांश चुनौतियों पर हमारे लिए बहुत अच्छा है। निराश मत हो!
wnnmaw

2

रूबी, 53 55 52 बाइट्स

f=->(a,b){/^(2|t[wo]?o|t0)$/i=~a&&/^b(e?e?|3)$/i=~b}

मैं ईमानदार रहूंगा, यह मेरी पहली कोशिश है कि मैं किसी समस्या को सुलझाने की कोशिश करूं।

फंक्शन कॉल के रूप में f.call(firstValue, secondValue)

0सत्य है, nilमिथ्या है।

इसे यहाँ टेस्ट करें



1

पायथ, 39 बाइट्स

-3 बाइट्स @FryAmtheEggman द्वारा

.A.b}rN1cY\@Q,."0Wѳ5YYÅJB"."3EW´l¢ï

इसे यहाँ आज़माएँ ।


कंप्यूटर पर मिलने पर मैं इसे ठीक कर दूंगा।
21

1

पायथन, 85 83 बाइट्स

@ मैनटवर्क ने मुझे दो बाइट्स बचाए।

यह बहुत क्रूर बल है, मैं अगले रेगेक्स समाधानों पर गौर करूंगा।

lambda a,b:a.lower()in'2 to too two t0'.split()and b.lower()in['b','be','bee','b3']

1
पहले एरे के लिए: '2 to too two t0'.split()दूसरे एरे के लिए कोई फर्क नहीं पड़ता।
मैनटवर्क

धिक्कार है, हाँ, मैंने कोशिश की '2,to,too,two,t0'.split(',')। मुझे मूर्ख।
ओगडे

1

PowerShell v3 +, 74 70 बाइट्स

param($a,$b)+($a-in-split'2 to too two t0')*($b-in-split'b be bee b3')

रेगेक्स का उपयोग नहीं करता है। दो इनपुट लेता है, जाँच करता है कि पहला एक ऐसा -inसरणी है जो -splitऑपरेटर द्वारा गतिशील रूप से बनाया गया है , उस बूलियन को एक इंट के साथ कनवर्ट करता है +, फिर यह गुणा करता है कि *क्या दूसरा चेक -inदूसरा सरणी है (जो स्वचालित रूप से बुलियन को इंट के रूप में डालेगा )। यह काम करता है क्योंकि x*y == x&yअगर xऔर yकेवल 1या हो सकता है 0

डिफ़ॉल्ट रूप से PowerShell केस-असंवेदनशील है, इसलिए हम इसे मुफ्त में प्राप्त करते हैं। क्रमशः आउटपुट 0या 1फ़ॉसी / ट्रू के लिए। -inऑपरेटर के लिए v3 या नए की आवश्यकता है ।

संपादित करें - Unary -split का उपयोग करके 4 बाइट्स सहेजे गए


0

ग्रूवी, 52 बाइट्स

f={x,y->"$x $y"==~"(?i)(2|t([wo]o?|0)) (b(ee?|3)?)"}

==~ ग्रूवी में एक शांत रेगेक्स ऑपरेटर है जो समानता की जांच करता है।

टेस्ट:

Regex101 परीक्षण।

assert f('2', 'Bee') == true
assert f('2', 'b') == true
assert f('not to', 'be') == false
assert f('that is', 'the question') == false

अगर xहै tऔर क्या yहै 0b?
नील

क्या मतलब?
J Atkin

मुझे f('t', '0b')झूठे होने की उम्मीद है, लेकिन मुझे चिंता है कि आपका कोड सही होगा।
नील

ओह्ह, ठीक है, मैं समझ गया। हां, यह गलत बात होगी।
J Atkin

0

MATL , 32 41 43 बाइट्स

jk'^(2|t[ow]?o|t0),b(e?e?|3)$'XX

@ DigitalTrauma के रेटिना उत्तर के समान दृष्टिकोण । इनपुट को अल्पविराम द्वारा अलग किया जाता है। ट्रू आउटपुट एक स्ट्रिंग है जिसमें दो इनपुट कम होते हैं; मिथ्या कोई आउटपुट नहीं है।

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

j                                % input as a string
k                                % convert to lowercase
'^(2|t[ow]?o|t0),b(e?e?|3)$'     % regular expression to match the two inputs
XX                               % match regular expression

0

सी # 6, 132 बाइट्स

bool t(string x,string y)=>new[]{"2","to","too","two","t0"}.Contains(x.ToLower())&&new[]{"b","be","bee","b3"}.Contains(y.ToLower());

Ungolfed संस्करण (केवल थोड़ा अधिक पठनीय):

bool t(string x, string y) => new[] { "2", "to", "too", "two", "t0" }.Contains(x.ToLower()) && new[] { "b", "be", "bee", "b3" }.Contains(y.ToLower());

0

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

डिजिटल ट्रॉमा के रेगेक्स का उपयोग करता है। इनपुट एक एकल स्ट्रिंग है जो अल्पविराम द्वारा अलग होती है। यकीन नहीं होता कि इनपुट के लिए उस प्रारूप की अनुमति है ...

import re
f=lambda x:bool(re.match('^(2|t[ow]?o|t0),b(e?e?|3)$',x))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.