बर्नार्डिनो ने अनछुए डॉलर के शब्दों की पहचान की


47

परिभाषा

एक डॉलर शब्द एक ऐसा शब्द है, जहां जब इसके प्रत्येक अक्षर को एक = 1 से z = 26 तक एक प्रतिशत मूल्य दिया जाता है, और अक्षरों को अभिव्यक्त किया जाता है, तो परिणाम 100 होता है। यहां CodeReview पर एक उदाहरण दिया गया है, और यहां एक सूची है डॉलर के शब्द मुझे ऑनलाइन मिले।

इनपुट

इनपुट az से वर्णानुक्रम में होगा, आपकी एक भाषा के पाठ डेटाटाइप्स में (सरणियों की अनुमति है)। आपको किसी अन्य इनपुट के लिए खाते की आवश्यकता नहीं है - कोई रिक्त स्थान, एपोस्ट्रोफ या हाइफ़न नहीं होगा। आप लोअरकेस, अपरकेस या एक संयोजन के रूप में ले सकते हैं। अनुगामी newlines की अनुमति है।

उत्पादन

आउटपुट एक सत्य मूल्य है अगर इनपुट एक डॉलर शब्द है, और एक गलत मूल्य है अगर यह नहीं है।

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

Truthy:

buzzy
boycott
identifies
adiabatically
ttttt

Falsey:

zzz
zzzzzzz
abcdefghiljjjzz
tttt
basic

यह कोड-गोल्फ है, इसलिए बाइट्स में सबसे कम जवाब जीतता है! मानक कमियां और नियम लागू होते हैं। टाई पहले पोस्टर पर जाती है।


20
शीर्षक में डॉलर शब्द हैं, क्षमा करें यदि यह आपको फेंक दिया।
स्टीफन

जवाबों:


7

जीएस 2 , 6 बाइट्स

▲1Θd←q

इनपुट अपरकेस में होना चाहिए।

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

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

  Θ       Combine the previous two tokens into a block and map it over the input.
▲             Push 64.
 1            Subtract 64 from the character on the stack.
   d      Take the sum of the resulting character array.
    ←     Push 100.
     q    Compare the two items on the stack for equality.


12

05AB1E , 8 बाइट्स

कोड:

Ç96-O4bQ

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

स्पष्टीकरण:

Ç          # Convert the string into a list of character codes
 96-       # Subtract 96 of each element
    O      # Take the sum
     4b    # Push 100 (4 in binary)
       Q   # Check if equal

2
Tnकाम भी करता है: P
मैजिक ऑक्टोपस Urn

Ç4+OTn%0Qमेरे पास एक और विचार था, लेकिन यह बदतर है।
मैजिक ऑक्टोपस Urn

11

पर्ल 6 , 21 बाइट्स

{100==[+] .ords X%32}

कोशिश करो

वैकल्पिक:

{Ⅽ==[+] .ords X%32}

कोशिश करो

ध्यान दें कि है ROMAN NUMERAL ONE HUNDREDकी ... 100 एक unival साथ U + 216D
कौन सा एनकोड करने के लिए 3 बाइट्स लेता है।

विस्तारित:

{  # bare block lambda with implicit parameter $_

  100     # is 100
  ==      # equal to
  [+]     # the sum of the following

    .ords # the ordinals of the input (implicit method call on $_)
    X[%]  # crossed using the modulus operator
    32    # with 32 to get 65..90 or 97..122 to become 1..26
}

11

MATL , 8 बाइट्स

96-s100=

लोअरकेस इनपुट का उपयोग करता है।

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

व्याख्या

कोड उतना ही पढ़ने योग्य है जितना इसे प्राप्त होता है:

96-   % Implicitly input string. Subtract 96 from each char interpreted as ASCII code
s     % Sum of array
100=  % Does it equal 100? Implicitly display

7

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

लौटाता है 0या 1

let f =

w=>[...w].map(c=>p-=parseInt(c,36)-9,p=100)|!p

console.log(f('buzzy'))
console.log(f('qwerty'))


दिलचस्प बात यह है कि जब मैंने कोशिश की reduceऔर पुनरावृत्ति की तो वे दोनों 2 बाइट्स लंबे समय तक बाहर आए।
नील

@ नील वास्तव में, यह reduce()अनुग्रह अवधि के पहले कुछ मिनटों के दौरान उपयोग कर रहा था जब मैंने शुरुआत में इसे पोस्ट किया था।
अरनौलड

7

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

f s=sum[1|c<-s,_<-['a'..c]]==100

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

विचार यह है कि सूची में aप्रत्येक वर्ण के लिए दिए गए वर्ण से वर्णों की एक सूची बनाएं , और जांचें कि कुल लंबाई 100 है।

अन्य प्रयास:

f s=sum[1|c<-s,_<-['a'..c]]==100

f s=sum[fromEnum c-96|c<-s]==100
f s=100==length((\c->['a'..c])=<<s)
(==100).length.(>>= \c->['a'..c])
(==100).length.(=<<)(\c->['a'..c])
(==100).length.(enumFromTo 'a'=<<)
f s=100==length(do c<-s;['a'..c])

बहुत बुरा enumFromToइतना लंबा है।


1
आप सही कह रहे हैं कि लंबाई एक शर्म (100==).length.(enumFromTo 'a' =<<)की बात है - बिंदु-मुक्त-नेस का इतना साफ उपयोग है
जूलियन वुल्फ

7

सी, 45 43 बाइट्स

दो बाइट बचाने और समाधान के मामले को असंवेदनशील बनाने के लिए @ निएल का धन्यवाद!

n;f(char*s){for(n=100;*s;)n-=*s++&31;n=!n;}

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


लगता है कि आप n=0विश्व स्तर पर एक बाइट को बचा सकते हैं और फिर लूप कल्पना के पहले खंड को छोड़ सकते हैं, नहीं? संपादित करें: कोई बात नहीं - मुझे लगता है कि यह बहुत पहले कॉल के लिए ही काम करेगा।
जूलियन वुल्फ

3
100 बाइट से नीचे गिना जा सकता है? साथ ही, &31आपके कोड केस को असंवेदनशील बनाने के लिए काम कर सकता है।
नील

जिज्ञासा से बाहर, कैसे n=!nकाम करता है ? मैं समझता हूं कि अगर nयह शून्य है, तो मैं यह देखता हूं कि कुछ परीक्षण के आधार पर मुझे !0रिटर्न मिलता है 1; !15रिटर्न 0; और साथ ही !-15लौटता है 0। पर क्यों? इसका !उपयोग करते समय C में कौन सा ऑपरेंड है !integer?
केविन क्रूज़सेन

@ केविनक्रूजसेन !सिर्फ तार्किक है not। C में, 0मतलब है false, और किसी भी अन्य पूर्णांक मूल्य का मतलब है true। तो !0 == 1, और !n == 0हर के लिए n != 0
स्टेडीबॉक्स

@Steadybox आह, मैं इस हिस्से को नहीं जानता था: " और किसी भी अन्य पूर्णांक मूल्य का मतलब सच है ", लेकिन यह वास्तव में समझ में आता है। मैंने हमेशा (गलत तरीके से) इसके बारे में सोचा 0=false; 1=true, इसलिए मेरा भ्रम। जवाब के लिए धन्यवाद।
केविन क्रूज़सेन

6

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

f w=sum[fromEnum c-96|c<-w]==100

यह लोअरकेस इनपुट के लिए काम करता है। अपरकेस के लिए, s/96/64/। मिश्रित-केस समर्थन बाइट्स का एक गुच्छा जोड़ देगा।


6

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

100==Tr@LetterNumber@#&

शुद्ध कार्य इनपुट, केस-असंवेदनशील, और लौटने Trueया के रूप में एक स्ट्रिंग (या अक्षरों की एक सरणी) ले रहा है False। यहां Trसिर्फ अक्षर-संख्याओं को एक साथ जोड़ा जाता है; बाकी सब कुछ आत्म-व्याख्यात्मक है।


6

जेली , ९ 9 ? * Tes बाइट्स

ɠO%32S⁼³

पूर्ण कार्यक्रम, आउटपुट 1 यदि इनपुट एक डॉलर शब्द है, या 0 नहीं तो।

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

कैसे?

ɠO%32S⁼³ - Main link
ɠ        - read a line of input from STDIN
 O       - cast to ordinals
  %32    - mod 32 (vectorises) (-3*32=96 from lowercase; -2*32=64 from uppercase)
     S   - sum
       ³ - literal: 100
      ⁼  - equal?

* क्या यह 7 बाइट्स हो सकता है?

इसका एकमात्र कारण इनपुट के साथ 3 आरडी कमांड लाइन इनपुट (1 सेंट प्रोग्राम इनपुट) के बजाय शाब्दिक 100 के रूप में ɠरखना था ।³

इससे बचने का एक तरीका है, जैसा कि डेनिस ने बताया, कच्चे शाब्दिक रूप का उपयोग करके 100 बनाना ȷ2जो कि 10 2 है । यह एक और 8 बाइट की ओर जाता है O%32S=ȷ2, लेकिन यह अब एक अनाम मानस फ़ंक्शन है (साथ ही 3 आरडी तर्क के साथ एक पूर्ण कार्यक्रम के रूप में संचालन )।

चूंकि, गोल्फ में, कोई भी वैरिएबल या हेल्पर फ़ंक्शंस बना सकता है जो उस प्रोग्राम को प्रतिबंधित करते हैं जिसमें वे निवास कर सकते हैं (कोई भी फ़ंक्शन को पुन: प्रयोज्य होने से रोकने के बिना नाम-स्कोप का पुन: उपयोग नहीं कर सकता है), शायद प्रोग्राम को केवल STIN से इनपुट लेने तक सीमित कर सकता है यह भी स्वीकार्य होगा, जिस स्थिति में 7 बाइट O%32S=³एक अनाम फ़ंक्शन के रूप में यहां स्वीकार्य होगी।


1
वैकल्पिक रूप से, O%32S=ȷ2। अपरकेस और लोअरकेस इनपुट के लिए काम करता है।
डेनिस

@ डेनिस यह बॉर्डरलाइन हो सकता है लेकिन O%32S⁼³वास्तव में एक वैध प्रविष्टि नहीं होगा क्योंकि यह एक अनाम, पुन: प्रयोज्य फ़ंक्शन को परिभाषित करता है, इसलिए जब तक यह प्रोग्राम के बाकी हिस्सों में इनपुट के लिए कमांड लाइन तर्कों का उपयोग नहीं करता है?
जोनाथन एलन

हम्म, मुझे लगता है कि किया जा सकता है। उदाहरण के लिए, C में वैश्विक चर का उपयोग करने से अलग नहीं।
डेनिस

6

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

/o!
\i@/e)q&w[?'`-+k3-n

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

इनपुट लोअर केस होना चाहिए। 1डॉलर शब्दों के लिए प्रिंट और 0अन्यथा।

व्याख्या

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

हालांकि, इसके ढेर के अलावा, ऐलिस में एक टेप भी है और कार्डिनल और ऑर्डिनल मोड टेप पर डेटा की अलग-अलग तरीकों से व्याख्या करते हैं

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

इस टेप का उपयोग उपरोक्त दोनों कार्यों के लिए किया जा सकता है: एक स्ट्रिंग की लंबाई प्राप्त करने के लिए, हम इसे ऑर्डिनल मोड में टेप पर लिखते हैं, कार्डिनल मोड में समाप्ति -1 की तलाश करते हैं और टेप हेड की स्थिति को पुनः प्राप्त करते हैं। पात्रों को उनके कोड बिंदुओं में बदलने के लिए, हम उन्हें कार्डिनल मोड में टेप से पढ़ते हैं।

इस समाधान में उपयोग की जाने वाली अन्य दो महत्वपूर्ण विशेषताएं हैं रिटर्न स्टैक और एक इटरेटर। ऐलिस में एक वापसी स्टैक होता है जो आमतौर पर जंप कमांड का उपयोग करते समय भरा जाता है j, और जिसे आप एक पते को वापस कूदने के लिए पॉप कर सकते हैं k। हालांकि, यह भी संभव है कि वर्तमान पते को रिटर्न स्टैक के साथ कहीं भी कूदने के बिना धक्का दिया जाए w। यदि हम रिपीट कमांड के wसाथ संयोजन करते हैं , तो हम वर्तमान पते को रिटर्न स्टैक n बार पुश कर सकते हैं । अब जब भी हम पहुंचते हैं , तो एक प्रति रिटर्न स्टैक से पॉप अप हो जाती है और हम एक और पुनरावृत्ति करते हैं (इसके बाद सेल में शुरू करते हैं, क्योंकि आईपी किसी अन्य कमांड को निष्पादित करने से पहले चलता है)। जब वापसी स्टैक खाली हो जाता है,&kwkकुछ भी नहीं करता है और आईपी बस के माध्यम से गुजरता है। इसलिए &w...kएक पूर्णांक n को पॉप करता है और फिर ... n + 1 बार निष्पादित करता है , जो हमें एक सरल forलूप व्यक्त करने के लिए बहुत संक्षिप्त तरीका देता है ।

कोड पर ही ...

/     Reflect to SE. Switch to Ordinal.
i     Read the input word as a string.
      Bounce off bottom boundary, move NE.
!     Store the input word on the tape.
      Bounce off top boundary, move SE.
/     Reflect to E. Switch to Cardinal.
e     Push -1.
)     Seek right on the tape for a -1, which finds the -1 terminating
      the input word.
q     Push the tape head's position, which gives us the string length N.
&w    Repeat this loop n+1 times (see above for an explanation)...
  [     Move the tape head left by one cell.
  ?     Retrieve the code point of the character in that cell.
  '`    Push 96.
  -     Subtract it from the code point to convert the letters to 1...26.
  +     Add the result to a running total. This total is initialised to 
        zero, because in Cardinal mode, the stack is implicitly filled with
        an infinite amount of zeros at the bottom.
k    End of loop.
     Note that the above loop ran once more than we have characters in the
     string. This is actually really convenient, because it means that we've
     added a "-1 character" to the running total. After subtracting 96 to
     convert it to its "letter value" this gives 97. So dollar words will
     actually result in 100 - 97 = 3, which we can check against for one
     byte less than for equality with 100.
3-   Subtract 3 to give 0 for dollar words.
n    Logical NOT. Turns 0 (dollar words) into 1 and everything else into 0.
     The IP wraps around to the beginning of the first line.
\    Reflect to NE. Switch to Ordinal.
o    Implicitly convert the result to a string and print it.
     Bounce off top boundary, move SE.
@    Terminate the program.

अच्छा! मुझे अपनी पहली कोशिश में 41 मिले
क्रिटिक्स लिथोस

6

आर, 55 54 बाइट्स

function(x)sum(match(el(strsplit(x,"")),letters))==100

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

  • एक फ़ंक्शन देता है जो आवश्यक संगणना करता है, जो वापस लौटता है TRUEऔर FALSEएक के रूप में अपेक्षा करता है।

  • लोअरकेस में इनपुट लेता है; केवल से एक स्विच होगा lettersकरने के लिए LETTERSसभी अपरकेस के लिए


1
function(x)sum(match(el(strsplit(x,"")),letters))==100एक बाइट बचाता है।
बीएलटी

6

रूबी, 25 बाइट्स

->s{s.sum-s.size*64==100}

अपरकेस के लिए काम करता है।

मैं अधिक जटिल रूबी प्रविष्टियों के एक जोड़े को देखता हूं, लेकिन यह वास्तव में यह सरल है। s.sumइनपुट स्ट्रिंग के ASCII कोड जोड़ता है, और इससे हम स्ट्रिंग की लंबाई का 64 गुना घटाते हैं।

उपयोग का उदाहरण

f=->s{s.sum-s.size*64==100}

puts f["ADIABATICALLY"]
puts f["ZZZ"]

यह केवल रूबी 2.4 पर काम करता है और वर्तमान
GB

1
@ जीबी टिप्पणी के लिए धन्यवाद, लेकिन मैं 2.2.6 पर चल रहा हूं और यह मेरे लिए ठीक काम करता है। यह सुविधा 1.9.3 के बाद से प्रलेखित की गई है। यह मेरे लिए भी TIO.run और Ideone.com पर काम करता है।
लेवल रिवर सेंट

आप सही हैं, मुझे लगा कि यह Array # योग के समान था, जो 2.4 में नया है
GB

वास्तव में, यह ASCII मूल्यों का योग नहीं है, परिभाषा है "स्ट्रिंग में वर्णों का एक मूल n-बिट चेकसम"। इस मामले में, यह काम करता है।
GB


5

05AB1E , 9 बाइट्स

5bIvAyk>-

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

व्याख्या

1 के रूप में 05AB1E में केवल सत्य मूल्य है हम 100 की तुलना में घटाव का उपयोग करके एक बाइट बचा सकते हैं ।

5b         # convert 5 to binary (results in 101)
  Iv       # for each letter in input word
    Ayk    # get the index of the letter in the alphabet
       >   # increment
        -  # subtract from total

5

पर्ल 5 , 30 बाइट्स

-1 बाइट @ @ नील (के 31&बजाय -96+) को धन्यवाद ।

कोड + -pध्वज के 29 बाइट्स ।

$@+=31&ord for/./g;$_=$@==100

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


क्या आप 31&ordइसके बजाय उपयोग कर सकते हैं ?
नील

@ नील हम ... मैं हमेशा -96+ऐसी चीजों के लिए उपयोग करता रहा हूं .. इसके लिए बहुत बहुत धन्यवाद! (लेकिन अब मुझे ऐसा लग रहा है कि मुझे अपने पुराने पोस्टों के माध्यम से वापस जाना चाहिए और प्रत्येक को बदलना चाहिए -96+: x)
दादा

प्रश्न निर्दिष्ट करता है कि सरणियों को इनपुट के रूप में अनुमति दी गई है। यह इस प्रकार एक सबरूटीन के रूप में सुरक्षित हो सकता है: {$@+=31&ord for@_;$@==100}(अप्रयुक्त)
msh210

मुझे लगता है कि यह संदर्भ पर निर्भर करता है - यहां आप इसका उपयोग कर रहे हैं +=, लेकिन अन्य मामलों में आप कोष्ठकों पर बचत को बर्बाद कर सकते हैं।
नील

@ msh210 चुनौती कहती है your one language's text datatypes। ऐरे शायद ही पर्ल के टेक्स्ट डेटापाइप हैं ... (अन्यथा यह वास्तव में 1 बाइट बचा होता)
दादा

5

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

$args|%{$s+=$_[0]-96};$s-eq100

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

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

EDIT को एक आसान स्थान याद आ गया लेकिन @AdmBorkBork कृपया मुझे बताएं: P भी, वास्तव में पात्रों को संभालने का एक बेहतर तरीका था!


हिया - एक युगल त्वरित गोल्फ। आप के आसपास कोष्ठक की जरूरत नहीं है [char]$_-96, और आप के बीच की जगह की जरूरत नहीं है -eqऔर 100, आप 33. आप भी कर सकते हैं करने के लिए नीचे हो रही "$_"[0]के बजाय [char]$_, आप 32. करने के लिए नीचे हो रही यह ऑनलाइन कोशिश करो!
AdmBorkBork

क्या "आसपास $_जरूरी हैं? यह कलाकारों के बिना काम करता प्रतीत होता है। क्या यह इनपुट स्ट्रिंग स्ट्रिंग होने के कारण हो सकता है?
साइनसॉइड

आह, वास्तव में आप सही हैं। "इस विशेष उदाहरण में आवश्यक नहीं हैं।
AdmBorkBork

5

ऐलिस , 28 18 बाइट्स

10 बाइट गोल्फिंग के लिए @MartinEnder को धन्यवाद

=I.!'`-+?hn
>3-nO@

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

यह सबमिशन @ मार्टिनएंडर के उत्तर की तुलना में एक अलग विधि का उपयोग करता है।

यह सबमिशन 0x00झूठा और सच्चाई के लिए प्रस्तुत करता है 0x01

तो यहां एक संस्करण है जो आउटपुट 0या 1इसके बजाय: इसे आज़माएं!

व्याख्या

नीचे दिया गया स्पष्टीकरण "दृश्यमान" संस्करण के लिए है। दोनों बहुत समान हैं, पहले कार्यक्रम को छोड़कर, आखिरी oमें 0या 1एक स्ट्रिंग में परिवर्तित नहीं होता है (क्योंकि हम कार्डिनल मोड में हैं), लेकिन इसके बजाय संख्या लेता है और उस कोड बिंदु पर चरित्र को आउटपुट करता है।

=                 Does nothing, but will be useful later on
I                 Read a character and push its code point onto the stack
                  If there is no more input, -1 is pushed instead
.                 Duplicate it
!                 Store it on the tape
#                 Skip the next command
o                 Gets skipped
'`                Push 96
-                 Subtract it from the character
+                 And add it to the total
?                 Load the number on the tape
h                 Increment it
n                 And negate it
                  For all characters that are read, ?hn results in 0,
                  but if -1 is pushed, then the result becomes 1

इसके बाद आईपी बाएं किनारे पर चारों ओर लपेटता है =। यदि स्टैक का शीर्ष मान है 0, तो IP अपने पथ पर जारी रहता है , सभी वर्णों के कुल योग को बढ़ाता है, एक बार जब यह इनपुट के साथ किया जाता है (स्टैक के शीर्ष होगा 1), तो आईपी सही हो जाता है (90) डिग्री दक्षिणावर्त)।

एक बात ध्यान रखना महत्वपूर्ण है, इनपुट समाप्त होने के बाद पहली पंक्ति पर लूप एक बार फिर से शुरू हो जाएगा। यह घटा देंगे 97( 96से '`और -1कुल से इनपुट की कमी से)।

>                Set the direction of the IP to East
3-               Subtract 3 from it (yields 0 if sum is 100, something else otherwise)
n                Negate it; Zero becomes 1, non-zero numbers become 0
/                Mirror; the IP gets redirected South-East
                 The IP reflects off the bottom and goes North-East
                 Now the program is in Ordinal mode, where numbers are automatically converted into strings when being used
o                Output the top of the stack as a string
                 IP reflects off the top and heads South-East
@                End the program

5

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

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to Auctioneer School.Go to Auctioneer School:s 1 r 1 l 1 l.Pickup a passenger going to Chop Suey.0 is waiting at Starchild Numerology.Go to Starchild Numerology:s 1 l.Pickup a passenger going to Addition Alley.Go to Chop Suey:e 1 l 2 r 3 r 3 r.[a]Switch to plan "b" if no one is waiting.Pickup a passenger going to Charboil Grill.Go to Charboil Grill:n 1 l 3 l 3 l.Pickup a passenger going to What's The Difference.Go to Go More:e.64 is waiting at Starchild Numerology.Go to Starchild Numerology:e 2 r.Pickup a passenger going to What's The Difference.Go to What's The Difference:e 1 l 2 r 1 l.Pickup a passenger going to Addition Alley.Go to Addition Alley:e 2 r.Pickup a passenger going to Addition Alley.Go to Chop Suey:n 1 r 2 r.Switch to plan "a".[b]Go to Addition Alley:n 1 l 2 l.Pickup a passenger going to Equal's Corner.100 is waiting at Starchild Numerology.Go to Starchild Numerology:n 1 l 1 l 3 l 2 r.Pickup a passenger going to Equal's Corner.Go to Equal's Corner:w 1 l.Switch to plan "c" if no one is waiting."TRUE" is waiting at Writer's Depot.[c]"FALSE" 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.

लाइन ब्रेक के साथ, यह इस तरह दिखता है:

Go to Post Office:w 1 l 1 r 1 l.
Pickup a passenger going to Auctioneer School.
Go to Auctioneer School:s 1 r 1 l 1 l.
Pickup a passenger going to Chop Suey.
0 is waiting at Starchild Numerology.
Go to Starchild Numerology:s 1 l.
Pickup a passenger going to Addition Alley.
Go to Chop Suey:e 1 l 2 r 3 r 3 r.
[a]
Switch to plan "b" if no one is waiting.
Pickup a passenger going to Charboil Grill.
Go to Charboil Grill:n 1 l 3 l 3 l.
Pickup a passenger going to What's The Difference.
Go to Go More:e.
64 is waiting at Starchild Numerology.
Go to Starchild Numerology:e 2 r.
Pickup a passenger going to What's The Difference.
Go to What's The Difference:e 1 l 2 r 1 l.
Pickup a passenger going to Addition Alley.
Go to Addition Alley:e 2 r.
Pickup a passenger going to Addition Alley.
Go to Chop Suey:n 1 r 2 r.
Switch to plan "a".
[b]
Go to Addition Alley:n 1 l 2 l.
Pickup a passenger going to Equal's Corner.
100 is waiting at Starchild Numerology.
Go to Starchild Numerology:n 1 l 1 l 3 l 2 r.
Pickup a passenger going to Equal's Corner.
Go to Equal's Corner:w 1 l.
Switch to plan "c" if no one is waiting.
TRUE is waiting at Writer's Depot.
[c]
FALSE 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.

यह ऊपरी या निचले हिस्से को स्वीकार करता है क्योंकि Auctioneer Schoolयह सभी को अपरकेस में परिवर्तित करता है।
Chop Sueyइसे व्यक्तिगत पात्रों में तोड़ता है।
Charboil Grillअक्षरों को उनके ASCII कोड में परिवर्तित करता है।
हम एक वर्ण को एक बार पिक करते हैं, इसे ASCII में रूपांतरित करते हैं, 65 को घटाते हैं, और इसे चल रहे कुल में जोड़ते हैं।
एक बार जब कोई और वर्ण नहीं होता है, तो कुल 100 की तुलना करें।

TRUEडॉलर के शब्दों और FALSEबाकी सभी चीजों के लिए रिटर्न ।


1
"बोरिंग" अपठनीय कोड-गोल्फ लैंगेज <20bytes उत्तर की दुनिया में, मैं आपकी प्रविष्टि, तरह के अजनबी का स्वागत करता हूं।
ओलिवियर दुलैक

5

IA-32 मशीन कोड, 21 बाइट्स

Hexdump:

33 c0 6a 64 5a 8a 01 41 24 1f 75 05 83 ea 01 d6
c3 2b d0 eb f0

विधानसभा कोड:

    xor eax, eax;   initialize eax to 0
    push 100;       initialize edx
    pop edx;            to 100
myloop:
    mov al, [ecx];  load a byte
    inc ecx;        go to next byte
    and al, 31;     convert from letter to number
    jnz cont;       not done? continue

    ;               done:
    sub edx, 1;     check whether edx got to 0; result is in CF
    __emit(0xd6);   aka SALC - set al to CF
    ret
cont:
    sub edx, eax
    jmp myloop

100 से 0. तक की गिनती। यदि 0 पर पहुंची है, तो सही (0xff) रिटर्न; अन्यथा गलत (0x00)।


5

डायलॉग एपीएल, 17 15 बाइट्स

100=+/17-⍨⎕AV⍳⍞

Dyalog क्लासिक वर्ण सेट का उपयोग करता है।

              ⍞  ⍝ string input
          ⎕AV⍳   ⍝ index in the character map
      17-⍨       ⍝ subtract 17 from each ('a' = 18)
    +/           ⍝ sum
100=             ⍝ equal to 100?

डिफ़ॉल्ट रूप से सभी सबमिशन पूर्ण प्रोग्राम या फ़ंक्शन होने चाहिए। REPL कार्यक्रमों की अनुमति तब तक दी जाती है जब तक वे इस तरह से पहचाने जाते हैं। हालाँकि, आपको अभी भी उपयोगकर्ता इनपुट का अनुरोध करना होगा।
डेनिस

4

पायथन , 38 बाइट्स

lambda s:sum(map(ord,s))==4-96*~len(s)

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

अंडाकार घोल के समान लंबाई । प्रत्येक ordमान से 96 घटाकर , यह जाँचता है कि क्या ordकुल बराबर है 100+96*len(s)। यह एक बाइट के रूप में व्यक्त किया जाता है 4-96*~len(s), जो बराबर होता है 4-96*(-len(s)-1)


पायथन 3 में lambda s:sum(s.encode(),96*~len(s))==4भी काम करेगा।
डेनिस


4

रेटिना , 47 23 बाइट्स

\w
!$&
}T`l`_l
^!{100}$

इसे ऑनलाइन आज़माएं! नोट: हैडर इनपुट को कम करता है और इसे शब्दों में विभाजित करता है; परिणाम अलग लाइनों पर दिखाई देते हैं। संपादित करें: @MartinEnder की बदौलत बहुत दूर तक बचे।


वर्णों को सम्मिलित करते समय धीरे-धीरे उन्हें कम करके अक्षर मानों की गणना करना बहुत कम है: tio.run/nexus/…
मार्टिन

4

ऑक्टेव, 18 बाइट्स

@(x)sum(x-96)==100

अक्षरों के संख्यात्मक मान प्राप्त करने के लिए, 96इनपुट स्ट्रिंग x(निचले मामले) से घटाव । लेता है sumऔर इसकी तुलना करता है 1001सत्य मामलों के लिए एक तार्किक लौटाता है , और 0झूठे मामलों के लिए एक तार्किक ।

मैं एक बाइट बचा सकता था यदि "डॉलर के शब्दों" के लिए झूठे और "गैर-डॉलर के शब्दों" के लिए सही था।


4

जाप , 13 12 10 बाइट्स

L¥U¬x_c %H

स्पष्टीकरण:

L¥ U¬x _c %H
L¥(U¬x(_c %H))
L¥(          )   // 100==
   U¬            //   Input split into a char array
     x(     )    //   The sum of:
       _         //     At each char:
        c        //       Get the char-code and
          %H     //       Mod 32

इसे ऑनलाइन टेस्ट करें!

12-बाइट:

L¥U¬mc m%H x

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

एक अलग तकनीक का उपयोग कर एक और 12-बाइट समाधान

L¥U¬x@;CaX Ä

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


अच्छा काम! मुझे लगता है कि आप m%Hइसके बजाय पहले वाले बाइट को बचा सकते हैं m-96(यह अब दोनों मामलों पर काम करेगा, बोनस!), और दूसरे पर एक साथL¥U¬x@;CaX Ä
ETHproductions

@ETHproductions धन्यवाद! m%Hएक अच्छी खोज थी। x@एक महान विचार भी था!
ओलिवर

@ETHproductions इसे 10 बाइट्स तक ले गया;)
ओलिवर

3

रूबी (2.4+), 38 बाइट्स

लोअरकेस में इनपुट लेता है। रूबी 2.4 की आवश्यकता है, Array#sumइसलिए यह टीआईओ पर नहीं चलेगा।

->a{a.chars.map{|c|c.ord-96}.sum==100}

2
String#bytesइसके बजाय उपयोग करें String#charsताकि आपको कॉल न करना पड़े c.ord
मूल्य इंक

और summap
GB

3

/// , 564 210 189 185 बाइट्स

/~/1\/\///4/11~3/41//6/33//2/66//5/22~a/~b/1~c/4~d/3~e/31~f/34~g/6~h/16~i/46~j/36~k/316~l/346~m/2~n/12~o/42~p/32~q/312~r/342~s/62~t/162~u/462~v/362~w/3162~x/3462~y/22~z/122~5555/0///1/0

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

प्रिंट्स 1 अगर यह एक "डॉलर शब्द" है, अन्यथा "0" प्रिंट करता है

इनपुट निम्नलिखित है: (दाईं ओर सभी स्क्रॉल करें)

/~/1\/\///4/11~3/41//6/33//2/66//5/22~a/~b/1~c/4~d/3~e/31~f/34~g/6~h/16~i/46~j/36~k/316~l/346~m/2~n/12~o/42~p/32~q/312~r/342~s/62~t/162~u/462~v/362~w/3162~x/3462~y/22~z/122~5555/0//INPUT WORD HERE/1/0

यूनरी में प्रत्येक अक्षर को उसके मान के साथ बदलकर काम करता है, फिर एक के साथ एक 100 को प्रतिस्थापित करता है। यह 0. तब शब्द के मान के साथ जो कुछ भी प्रतिस्थापित करता है, 1. यदि शब्द का मान 0 है, तो यह 1 को प्रिंट करेगा क्योंकि इसके अंत में कोड, यह 0. की जगह ले रहा है। यदि शब्द का मूल्य कुछ और है, तो यह केवल 0 प्रिंट करेगा।

गोल्फ कोड में आम घटनाओं को प्रतिस्थापन के रूप में उपयोग करके काम करता है।


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