Oreo? नहीं ... लॉलीपॉप, शायद?


46

2009 से, एंड्रॉइड के संस्करण कोड नाम कन्फेक्शनरी-थीम वाले हैं। एंड्रॉइड 1.5 कप केक है, एंड्रॉइड 1.6 डोनट है, एंड्रॉइड 2.0 ईक्लेयर है, आदि .. वास्तव में, संस्करण नाम वर्णानुक्रम में हैं!

C -> Cupcake
D -> Donut
E -> Eclair
F -> Froyo
G -> Gingerbread
H -> Honeycomb
I -> Ice Cream Sandwich
J -> Jellybean
K -> Kitkat
L -> Lollipop
M -> Marshmallow
N -> Nougat
O -> Oreo

क्रम में:

Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwich, Jellybean, Kitkat, Lollipop, Marshmallow, Nougat, Oreo

चुनौती

एक लिखें कार्यक्रम / समारोह है कि से एक पत्र ले जाता है Cकरने के लिए Oऔर अपने संबंधित Android संस्करण कोड नाम आउटपुट।

विशेष विवरण

  • मानक I / O नियम लागू होते हैं
  • मानक खामियों को मना किया जाता है
  • आप या तो लोअरकेस इनपुट या अपरकेस इनपुट या दोनों का समर्थन करना चुन सकते हैं।
  • आउटपुट शीर्षक केस ( Cupcake) या पूरी तरह से लोअर केस ( eclair) में हो सकता है। Ice cream sandwichहालाँकि, आपको पसंद किया जा सकता है। (मुझे उम्मीद नहीं थी कि यह इतना भ्रम पैदा करेगा ...)
  • यह चुनौती सभी भाषाओं में सबसे छोटा दृष्टिकोण खोजने के बारे में नहीं है, बल्कि, यह प्रत्येक भाषा में सबसे छोटा दृष्टिकोण खोजने के बारे में है
  • आपका कोड बाइट्स में स्कोर किया जाएगा , आमतौर पर एन्कोडिंग UTF-8 में, जब तक कि अन्यथा निर्दिष्ट न हो।
  • निर्मित कार्य (मेथेमेटिका एक हो सकता है: पी) कि इस अनुक्रम की गणना कर रहे हैं की अनुमति दी है, लेकिन एक समाधान है कि पर एक अंतर्निहित प्रोत्साहित किया जाता है निर्भर नहीं करता भी शामिल है।
  • स्पष्टीकरण, यहां तक ​​कि "व्यावहारिक" भाषाओं के लिए भी प्रोत्साहित किया जाता है

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

ये अपरकेस और टाइटल केस हैं।

Input   Output

F       Froyo
I       Ice Cream Sandwich
J       Jellybean
N       Nougat
G       Gingerbread
L       Lollipop

कुछ बेहतर प्रारूपों में:

F, I, J, N, G, L
f, i, j, n, g, l

F I J N G L
f i j n g l

8
@ Mr.Xcoder क्या आप कह रहे हैं कि यह एक आसान नहीं है क्योंकि यह आसान है? यह वास्तव में एक डुबकी है क्योंकि यह मौजूदा प्रश्न का एक आसान संस्करण है। हमने पहले ही इस प्रकार के प्रश्न को मौत के घाट उतार दिया है और यह शैली के लिए बिल्कुल नया या दिलचस्प नहीं है।
गेहूं जादूगर

2
@WheatWizard मुझे लगता है कि पूर्व एक बेहतर तरीका है, क्योंकि उत्तरार्द्ध प्रतिबंधित स्रोत है।
श्री Xcoder

9
यह किसी अन्य चुनौती का एक ठिकाना हो सकता है। लेकिन मुझे पहचानने में मदद करें कि मेरा राक्षस स्ट्रिंग को प्रतीक रूपांतरण के लिए कह रहा है (जो हैश-आधारित समाधान की ओर जाता है)। यह एक प्रतीक स्ट्रिंग के लिए पूछ रहा है।
अरण्युलड


5
@MagicOctopusUrn हाँ, मैंने देखा है कि, भी। दुर्भाग्य से, इसमें शामिल नहीं है MARSHMALLOWऔर बाद में।
mbomb007

जवाबों:


14

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

θ§⪪”%↖↙1¬¢/vy⁵⸿ψJPP±≔S×5Jρνξ–Gu ◧;Yx³F▶ψ;εB↥:P¹N﹪J$α✂χ✳⦄⟲*±¶Sp:ς↘V◧◧”x℅θ

इसे ऑनलाइन आज़माएं! I / O लोअर केस में है। इस क्रिया संस्करण के आधार पर । स्पष्टीकरण:

                Implicitly print:
θ               Input character
                Implicitly print:
   ”...”        Long compressed string "oneycombx...xingerbread"
  ⪪            Split on
        x       The string "x"
 §              Circularly indexed by
          ℅     Character code of
           θ    Input character

4
मैं क्या? किस तरह।
मैजिक ऑक्टोपस Urn

@MagicOctopusUrn क्षमा करें मैं उस समय स्पष्टीकरण जोड़ने में बहुत व्यस्त था। आशा है कि यह पर्याप्त है।
नील

1
अरे वाह, मुझे नहीं पता था कि यह संकुचित तार था!
मैजिक ऑक्टोपस Urn

चारकोल ने एसओजीएल को यहां कैसे हराया, यह अविश्वसनीय है।
एरिक आउटगॉल्फ

जेली की अभी भी यह धड़क रहा है: खुशी: codegolf.stackexchange.com/a/140092/73675
ह्यूगो एच

14

बैश + कोर बर्तन 131 128 122 117 बाइट्स।

स्क्रिप्ट को Base64 के रूप में एन्कोड किया गया है क्योंकि इसमें विशेष (अजीब) वर्ण हैं।

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

CiPBUeICicG5tJ8W5a0Pc/hYuw7hkNMSIYkAPjARkdgFrdbh3NJgTmB4gRPiiQDJAaOyBH4ki14C
QDeKRNQJ8IJYER411DAnx0SO4CAKYmFzZTMyICQwfHRyICdBLVo0NwonICdhLXoKICd8Z3JlcCBe
JDEK

explaination:

#�Q��������s�X����!�>0�������`N`x������~$�^@7�D�    ��X5�0'�D�� 
base32 $0|tr 'A-Z47
' 'a-z
 '|grep ^$1
  • पहली दो पंक्तियाँ डेटा के साथ बाइनरी ब्लॉब हैं (अधिक जानकारी के लिए उत्तर का अंत देखें)। पहली पंक्ति खाली है, बैश के साथ समस्याओं से बचने के लिए, अन्यथा यह सोच सकता है कि एक बाइनरी फ़ाइल के साथ खिलाया जा रहा है।
  • base32 $0 76 वर्णों की डिफ़ॉल्ट पंक्ति रैपिंग के साथ, बेस 32 के साथ स्क्रिप्ट सामग्री को एनकोड करता है।
  • tr 'A-Z47\n' 'a-z\n '(ध्यान दें कि \nएक शाब्दिक न्यू लाइन के रूप में लिखा है) इनपुट लोअरकेस और बदल देगा 4 , 7 और \nसे \n, अंतरिक्ष और अंतरिक्ष क्रमशः।
  • grep ^$1 स्क्रिप्ट के पहले तर्क के रूप में प्रदान की गई स्ट्रिंग से मेल खाने वाली लाइनों का उत्पादन करेगा।

बाइनरी डेटा

यह ऑक्टेट स्ट्रीम जाली थी, इसलिए इसमें नई लिंक नहीं हैं और जब इसे RFC 4648 के अनुसार Base32 के साथ डिकोड किया गया, तो परिणामी स्ट्रिंग एंड्रॉइड कोडनेम ( 4 के रूप में आइटम सीमांकक और अंतरिक्ष वर्ण को बदलने के लिए 7 का उपयोग करके ) की सूची है। इसकी विशिष्टताओं के बीच, यह एक नए चरित्र और एक हैश ( ) के साथ शुरू होता है, इसलिए यह एक टिप्पणी के रूप में व्यवहार करता है और इसलिए, दुभाषिया द्वारा निष्पादित नहीं किया जाता है।#

इसके अलावा, इस Base32 कार्यान्वयन के 76 वर्णों को लपेटने वाली डिफ़ॉल्ट लाइन ने मुझे एक बाइट में मदद की, क्योंकि मैंने आइसक्रीम सैंडविच स्पेस में से एक के रूप में लाइन ब्रेक का उपयोग करने के लिए आइटम को फिर से चालू किया ।


इसके अलावा, और विषय से हटकर थोड़ा जा रहा है, मुझे लगता है कि गूगल नहीं करना चाहिए में सीधे Android कोडनाम में वाणिज्यिक उत्पादों का विज्ञापन।


2
अच्छा, यह एक बहुत अच्छा जवाब है! साइट के लिए :) आपका स्वागत है
DJMcMayhem

एक और बैश जवाब: codegolf.stackexchange.com/a/140147/41835
Helio

1
यह संस्करण छोटी गाड़ी है, कम से कम मेरे सिस्टम पर (bash 4.4.12, coreutils 8.27)। के लिए f, यह दो पंक्तियों को आउटपुट करता है: एक के साथ froyoऔर दूसरा रहस्यमय fgeyltmuzteibno
MarSoft

1
@MarSoft: धन्यवाद! फिक्स्ड। अफ़सोस इस बात का है कि अब मुझे एक बाइट की और ज़रूरत है।
हेलियो

@ मारसॉफ्ट: हल! अब उसी बाइट के साथ!
हेलियो


11

बैश + कोर यूटिल्स (जीआरपी): 132 130 बाइट्स

जैसा सरल हो सकता है

grep ^$1<<<'Cupcake
Donut
Eclair
Froyo
Gingerbread
Honeycomb
Ice Cream Sandwich
Jellybean
Kitkat
Lollipop
Marshmallow
Nougat
Oreo'

1
के माध्यम से इनपुट ddचतुर है, लेकिन क्या आप एक स्क्रिप्ट के रूप में सहेज सकते हैं और $1इसके बजाय उपयोग कर सकते हैं?
डोम हेस्टिंग्स

11

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

Oị“¡ȥọ⁴ḷæĿɱ}#n#i®ÞSỊ3ƙɼıjṁ)-⁵g7ḥjC?4ƘẠʂ+ḋ¤⁺jṣð£?v»Ḳ¤F⁾! y

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

-5 जोनाथन एलन को धन्यवाद ।


"आइसक्रीम सैंडविच" में रिक्त स्थान के लिए प्लेसहोल्डर का उपयोग करके और बंटवारे के लिए रिक्त स्थान का उपयोग करके चार बाइट्स सहेजें, उदाहरण के लिए:Oị“¡ḟ¤Y7bh%XO€ḥıṣẎṄṢ°ḊḞİỌĿż0Y⁷ẠỵƈƭV>tÐNY_LɠðṅẒọX?v»Ḳ¤F⁾! y
जोनाथन एलन

... वास्तव में उस पांच बाइट्स (मैंने "खोह" का उपयोग किया था जब "क्लैर" शब्दकोष में है):Oị“¡ȥọ⁴ḷæĿɱ}#n#i®ÞSỊ3ƙɼıjṁ)-⁵g7ḥjC?4ƘẠʂ+ḋ¤⁺jṣð£?v»Ḳ¤F⁾! y
जोनाथन एलन

@JonathanAllan धन्यवाद ... प्रतीक्षा करें मुझे इसकी आवश्यकता क्यों होगी F? ओह, यह इसलिए है क्योंकि मुझे एक तार के रूप में इनपुट नहीं मिलता है
एरिक आउटगोल्फर

8

सी ++, 206 201 198 बाइट्स

3 बाइट बचाने में मदद करने के लिए @sergiol का धन्यवाद!

#import<cstdio>
void f(int l){char*w[]={"upcake","onut","clair","royo","ingerbread","oneycomb","ce Cream Sandwich","ellybean","itkat","ollipop","arshmallow","ougat","reo"};printf("%c%s",l,w[l-67]);}

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

सी, 173 बाइट्स

f(l){char*w[]={"upcake","onut","clair","royo","ingerbread","oneycomb","ce Cream Sandwich","ellybean","itkat","ollipop","arshmallow","ougat","reo"};printf("%c%s",l,w[l-67]);}

खैर, यह C ++ के रूप में शुरू हुआ था, लेकिन अब यह C भी मान्य है, और कुछ बाइट्स को C के रूप में संकलित करके बचाया जा सकता है।

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


1
प्रत्येक प्रविष्टि के पहले अक्षर को हटाकर इसे छोटा करने का मेरा विफल प्रयास: tio.run/…
sergiol

@sergiol धन्यवाद! मैं थोड़ा गोल्फ के बाद के साथ तीन बाइट्स को बचाने में सक्षम था।
स्टेयडबॉक्स

4
#importसी ++ में? मुझे यहां क्या समझ नहीं आ रहा है?
अभिनव गौनियाल

@AbhinavGauniyal: IIRC मुझे लगता है कि कुछ संकलित चेतावनी ने मुझे भी जोड़ने की सलाह दी #import <cstdio>क्योंकि कमी #include <stdio.h>; या मैं गलत हो सकता हूं
सर्गियो

@AbhinavGauniyal यह मानक C ++ नहीं है, लेकिन कम से कम GCC और MSVC के पास है।
स्टेडीबॉक्स

7

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

नील की बदौलत बचा 1 बाइट

c=>'CupcakeDonutEclairFroyoGingerbreadHoneycombIce Cream SandwichJellybeanKitkatLollipopMarshmallowNougatOreo'.match(c+'([a-z]| .)+')[0]

डेमो


क्या आप वर्ण श्रेणी में स्थान शामिल नहीं कर सकते, शायद \ _ के साथ? ज्यादा इस्तेमाल नहीं किया है जेएस
रेग्क्स

1
@ michi7x7 Hes को आइस क्रीम सैंडविच के मामले में एक अपरकेस लेटर पर रुकने के लिए मैच की आवश्यकता होती है, हालाँकि ([a-z]| .)+(1 बाइट बचाना) स्ट्रिंग के बीच में आइस क्रीम सैंडविच के साथ भी काम करेगा (कोड नाम S तक पहुँचते ही यह विफल हो जाएगा। हालांकि)।
नील

@ अच्छी तरह से, [a-z\s]+अपरकेस अक्षरों से मेल नहीं खाता। मुझे नहीं पता कि आप जेएस में ऐसा कर सकते हैं
michi7x7

@ michi7x7 तो यह आइसक्रीम सैंडविच के साथ कैसे काम करेगा?
नील

2
Ice cream sandwichपरीक्षण मामले में उपयोग करें , (हालांकि यह शीर्षक मामला नहीं है)
michi7x7

5

जाप , 81 79 बाइट्स

इसमें कुछ वर्ण शामिल हैं जो यहां प्रदर्शित नहीं होंगे।

U+`Æ+tfÆ÷¯kef©fclairfê $ßdfey¬mbf­ ×Äm ÑØrfÁKÞ fkfo¥ipopfÂâÚaow`qf gUc

झसे आज़माओ

  • 2 बाइट्स ने ओलिवर को धन्यवाद दिया ।

व्याख्या

अपरकेस वर्ण स्ट्रिंग का निहित इनपुट U

नामों की एक संपीड़ित स्ट्रिंग (बैकटिक्स के बीच सब कुछ) fउनके पहले अक्षर के साथ और बिना विभाजित किए अलग है ( q) पर एक सरणी में f

उस एरे के भीतर हमें एस वर्ण कोड के इंडेक्स ( g) पर तत्व मिलता है U। (याय, इंडेक्स रैपिंग!)

हम कहते हैं कि Uऔर परिणामी स्ट्रिंग को स्पष्ट रूप से उत्पादन करने के लिए।


1
अच्छा लगा। यदि आप fइसके बजाय विभाजित करते हैं तो आप एक जोड़े को बचा सकते हैं यदि newlines: ethproductions.github.io/japt/…
ऑलिवर

@ ओलिवर: ओह, अच्छा है, धन्यवाद :) मेरे फोन पर, सड़क पर चलना निश्चित रूप से थोड़ी देर के लिए नहीं मिला होगा (यदि बिल्कुल भी)।
Shaggy

5

एक्सेल VBA, 137 134 132 बाइट्स

बेनामी VBE तत्काल विंडो फ़ंक्शन जो इनपुट को अपेक्षित प्रकार Variant\Stringऔर लंबाई के रूप में लेता है सेल से 1एक कैपिटल लेटर [A1]और VBE तत्काल विंडो फ़ंक्शन के लिए आउटपुट

?[A1]Split("upcake onut clair royo ingerbread oneycomb ce cream sandwich ellybean itkat ollipop arshmallow ougat reo")(Asc([A1])-67)

रिक्त स्थान में बदलने के लिए -5 बाइट्स ce cream sandwichसे करने के लिए (चार 32)  (चार 160) में `` (चार 127) और अल्पविराम सीमांकक को हटाने Splitसमारोह


4

SOGL V0.12 , 81 बाइट्स

]&ŗ√‰fō¶č▓'▼$»3↕█γb└a}⅟∑─b¹¦Æ:↕┘∞½Σ#gī±⅔≡≥\3Qy-7todΥ7ā‼D←εPρρ:¬c‰ƨ}f沑θ╔@ŗz,WHHw

यह कोशिश करो!

स्पष्टीकरण:

...‘            push "cupcake donut eclair froyo gingerbread honeycomb ice_cream_sandwich jellybean kitkat lollipop marshmallow nougat oreo"
    θ           split on spaces
     ╔@ŗ        replace underscores with spaces
        z,W     find the inputs index in the lowercase alphabet
           HH   decrease by 2
             w  get that item from the array

अब एक छोटा 80 बाइट संस्करण है, लेकिन मैंने इस चुनौती के कारण + 2 / -2 बिल्ट-इन को जोड़ा: पी

संकुचित स्ट्रिंग "cup","cake"," donut eclair fro","yo gingerbread honeycomb ice","_","cream","_","sandwich jelly","bean kit","kat loll","i","pop marsh","mallow"," nougat oreo"अंग्रेजी शब्दों के अधिकतम उपयोग के लिए विभाजित है (कई SOGLs शब्दकोश में नहीं थे), अभी मुझे कोई सुधार नहीं मिल रहा है।


4

> <> , 181 बाइट्स

!vi:od5*-0$6a*@p!
v<
 v"upcake"
 v"onut"
 v"clair"
 v"royo"
 v"ingerbread"
 v"oneycomb"
 v"ce Cream Sandwich"
 v"ellybean"
 v"itkat"
 v"ollipop"
 v"arshmallow"
 v"ougat"
 v"reo"
o<>

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

यह प्रोग्राम को <प्रिंट करने के लिए सही नाम के सामने रखने के लिए प्रोग्राम को स्व-संशोधित करके काम करता है , जिसकी स्थिति इनपुट पत्र के मूल्य से निर्धारित होती है।


3

डायलॉग एपीएल, 158 143 131 बाइट्स

1 बाइट @ Zacharý की बदौलत बच गई

12 बाइट्स @Gil की बदौलत बच गईं

{⍵,(⎕A⍳⍵)⊃','(1↓¨=⊂⊢)',,,upcake,onut,clair,royo,ingerbread,oneycomb,ce Cream Sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo'}

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

कैसे?

',,,upcake...' - शब्दों की सूची

','(1↓¨=⊂⊢) - द्वारा विभाजित ','

(⎕A⍳⍵)⊃ - वर्णमाला में तर्क के स्थान से लें

⍵, - और पत्र के लिए संलग्न करें


आपने चपटा क्यों बताया ?
ज़ाचारि

इसके अलावा, {⍵,∊⍬⍬'upcake' 'onut' 'clair' 'royo' 'ingerbread' 'oneycomb' 'ce cream sandwich' 'ellybean' 'itkat' 'ollipop' 'arshmallow' 'ougat' 'reo'[⎕A⍳⍵]}1 कम बाइट के लिए काम करता है!
Zacharý

@ Zacharý क्योंकि यह है ... "मिक्स"। अच्छा है! क्यों ↑ और नहीं ↑?
एरियल

क्योंकि समतल है, लेकिन वास्तव में समतल है और "मिक्स" नहीं है। ↑(1 2)(3 4)समतल नहीं है, जबकि ∊(1 2)(3 4)है।
ज़ाचारि

@ Zacharý ओपी बदल गया है कि ... फिर से।
ऊरीएल

3

EXCEL, 154 बाइट्स

=A1&CHOOSE(CODE(A1)-66,"upcake","onut","clair","royo","ingerbread","oneycomb","ce Cream Sandwich","ellybean","itkat","ollipop","arshmallow","ougat","reo")

मैंने इस तरह से एक्सेल का उपयोग करने के बारे में कभी नहीं सोचा है। उत्तम। अब इसे WORD
tisaconundrum

@tisaconundrum - हम उस अर्जित चीज़ की बात नहीं करते हैं; यहां तक ​​कि वीबीए इसे भी नहीं बचा सका
टेलर स्कॉट



2

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

f c=takeWhile(/=succ c)$dropWhile(/=c)"CupcakeDonutEclairFroyoGingerbreadHoneycombIce Cream SandwichJellybeanKitkatLollipopMarshmallowNougatOreo"

3
takeWhilefst.spanऔर dropWhileतदनुसार हो सकता है snd.span
लिकोनी

2

गैया , 110 बाइट्स

:c“reo“upcake“onut“clair“royo“ingerbread“oneycomb“ce Cream Sandwich“ellybean“itkat“ollipop“arshmallow“ougat”=+

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

व्याख्या

:          Push two copies of the input
 c         Get the codepoint of the top one
  “...”    Push the list of version names without their first letters
       =   Modularly index the code point into the list
        +  Append to the input


2

पायथ , 117 116 बाइट्स

मेरे अजगर जवाब का पोर्ट ।

+Q@c"upcake,onut,clair,royo,ingerbread,oneycomb,ce cream sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo"\,a67C

यहाँ कोशिश करो! या टेस्ट सूट की जाँच करें

पायथ , 99 बाइट्स (70 अक्षर)

-15 बाइट्स @insert_name_here के लिए धन्यवाद !

+Q@c." y|çEC#nZÙ¦Y;åê½9{ü/ãѪ#¤
ØìjX\"¦Hó¤Ê#§T£®úåâ«B'3£zÞz~Уë"\,a67C

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


आप संपीड़ित स्ट्रिंग्स का उपयोग करके 15 बाइट्स बचा सकते हैं (हालांकि उत्तर में अनपेक्षित वर्णों को शामिल करना होगा)।
सम्मिलित करें____

@insert_name_here धन्यवाद।
श्री एक्सकोडर

2

जावा (ओपनजेडके 8) , 128 बाइट्स

c->c+"upcake#onut#clair#royo#ingerbread#oneycomb#ce Cream Sandwich#ellybean#itkat#ollipop#arshmallow#ougat#reo".split("#")[c-67]

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


रेग्जेस, 149 बाइट्स का उपयोग करना

s->"CupcakeDonutEclairFroyoGingerbreadHoneycombIce cream sandwichJellybeanKitkatLollipopMarshmallowNougatOreo".replaceAll(".*?("+s+"[a-z ]+).*","$1")

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

  • 4 बाइट्स केविन क्रूज़सेन की बदौलत रेग्ज समाधान पर बच गए!

1
.splitजब मैं चुनौती पढ़ता था और एक जावा उत्तर नहीं पाता था, तब तक मैं एक ही उत्तर (विभिन्न परिसीमन के साथ) पोस्ट करने वाला था, (जब तक कि मैं उत्तर के दूसरे पृष्ठ पर नहीं गया), इसलिए +1। रेगेक्स उत्तर के रूप में, ([a-z]| .)+हो सकता है [a-z ]+, क्योंकि आपको "आइसक्रीम सैंडविच" के उत्पादन की अनुमति है (" आउटपुट शीर्षक मामले (कपकेक) में हो सकता है या पूरी तरह से लोअर केस (एक्लेयर) हो सकता है। आइसक्रीम सैंडविच आपको पसंद किया जा सकता है) (मुझे यह बहुत भ्रम पैदा करने की उम्मीद नहीं थी ...) "
केविन क्रूज़सेन

2

मूल रूप से , 1047 852 830 बाइट्स

सुनिश्चित करें कि गोल्फ बड़े कार्यक्रमों में मदद करें ...

⇒+552
⇒+551
⇒+553
⇒+55
⇒/1+52
⇒/1+53
~@7+4f5=?{:5+53@:4/1f1@:5+51@:5+2/1f4@:5+3/1f2@:2/1f2@}
+5f5=?{:3/1f1@:2/1f1@:5+53@:5+3/1f1@}
+51f5=?{:5+51@+1@:5+2/1f4@:5+1/1+551@+1@}
+52f5=?{:5+1/1f1@:3/1f1@:4/1f3@:3/1f1@}
+53f5=?{:5+1/1f2@:2/1f1@:4/1f2@:2/1f2@:5+1/1f1@:5+3/1f4@:5+1/1f1@:2/1f2@:5+2/1f4@:1/1f2@}
+53=?{:3/1f1@:2/1f1@-1@:4/1f3@:5+51@:3/1f1@:1/1f1@:5+3/1f4@}
+1f6=?{:5+51@:2/1f2@:5/1+3@:4/1+52@:5+1/1f1@:2/1f2@:5+2/1+55@:1/1f1@:5/1+3@:2/1+54@:5+2/1f4@6:2/1f1@6:1/1f2@6:2/1f3@6:5+1/1f2@6:5+51@6:5/1f2@6}
+2f6=?{:2/1f2@:5+52@@:4/1f3@:5+3/1f4@:2/1f2@:5+2/1f4@:2/1f1@}
+3f6=?{:5+1/1f2@:5+3/1f1@-1@:5+2/1f4@:5+3/1f1@}
+4f6=?{:3/1f1@:5+52@@:5+1/1f2@:4/1f1@:3/1f1@:4/1f1@}
+5f6=?{:5+2/1f4@:5+1/1f1@:5+2/1f1@:5/1f2@:1/1f1@:5+2/1f4@:5+52@@:3/1f1@:2/1f3}
+51f6=?{:3/1f1@:5+53@:4/1f2@:5+2/1f4@:5+3/1f1@}
+52f6=?{:5+1/1f1@:2/1f2@:3/1f1@}

इसे ऑनलाइन आज़माएं! क्यूबिकली के एसबीसीएस में यह 830 बाइट्स है ।

  • ~इनपुट पढ़ता है, @इसे प्रिंट करता है। (इनपुट अमान्य होने पर यह टूट जाता है।)
  • से प्रत्येक +.../...+...=7?6{...}(प्रत्येक ASCII मूल्य पर इनपुट तुलना C, D, E, F, आदि) और भीतर कोड निष्पादित करता है {...}अगर वे बराबर हैं।
  • प्रत्येक कोड ब्लॉक ( {...}) पहले नाम के बाकी हिस्सों को प्रिंट करता है (पहला वर्ण पहले से ही मुद्रित है)।

तेहलीर्स ASCII को क्यूबिक ट्रांसलेटर के लिए धन्यवाद जो बहुत मददगार था।


1
वह 1060 बाइट्स है
कॉनर ओ'ब्रायन


1

पाइके , 117 बाइट्स

मेरे अजगर जवाब का पोर्ट ।

"upcake,onut,clair,royo,ingerbread,oneycomb,ce cream sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo"\,cQ.o67-@+

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

हेक्स कोड के रूप में एन्कोडेड, पाइके में गोल्फ की नई तकनीक, यह 116 बाइट्स होगी :

22 75 70 63 61 6B 65 2C 6F 6E 75 74 2C 63 6C 61 69 72 2C 72 6F 79 6F 2C 69 6E 67 65 72 62 72 65 61 64 2C 6F 6E 65 79 63 6F 6D 62 2C 63 65 20 63 72 65 61 6D 20 73 61 6E 64 77 69 63 68 2C 65 6C 6C 79 62 65 61 6E 2C 69 74 6B 61 74 2C 6F 6C 6C 69 70 6F 70 2C 61 72 73 68 6D 61 6C 6C 6F 77 2C 6F 75 67 61 74 2C 72 65 6F 22 5C 2C 63 51 EF 36 37 2D 40 2B

(चेक इन और पेस्ट करें Use hex encoding?)।


1
पक्के को "एंड्रॉइड रिलीज़" बिलिन की आवश्यकता है?
को आउटगोल्फर

1
@EriktheOutgolfer में पोकेमॉन है, तो क्यों नहीं?
श्री एक्सकोडर

1

सी # , 147 136 129 बाइट्स


डेटा

  • इनपुट Char c संस्करण नाम का पहला अक्षर
  • आउटपुट String संस्करण का पूरा नाम

golfed

// Requires the input to be uppercase.
// This is the one counting for the challange
c=>c+"upcake,onut,clair,royo,ingerbread,oneycomb,ce Cream Sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo".Split(',')[c-67];

// Optional. Requires the input to be lowercase.
c=>c+"upcake,onut,clair,royo,ingerbread,oneycomb,ce Cream Sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo".Split(',')[c-99];

// Optional. Works with both uppercase and lowercase with the additional cost of 10 bytes.
c=>c+"upcake,onut,clair,royo,ingerbread,oneycomb,ce Cream Sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo".Split(',')[c-(c<99?67:99)];

Ungolfed

c =>
    c + "upcake,onut,clair,royo,ingerbread,oneycomb,ce Cream Sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo"
        .Split( ',' )[ c - 67 ];

पढ़ने योग्य अनगढ़

// Takes a char 
c =>
    // Appends the input letter to...
    c + 

    // ... the name in the resulting index of the subtraction of the char with 67 ('C'), or with 99 ('c') for the lowercase version
    "upcake,onut,clair,royo,ingerbread,oneycomb,ce Cream Sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo"
        .Split( ',' )[ c - 67 ];

// Takes a char 
c => 
    // Appends the input letter to...
    c + 

    // ... the name in the resulting index of the subtraction of the char with 67 ('C') if the char is uppercase ( 'C' == 67, 'O' == 79 )
    //    or with 99 ('c') if the char is lowercase ( 'c' == 99, 'o' == 111 )
    "upcake,onut,clair,royo,ingerbread,oneycomb,ce Cream Sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo"
        .Split( ',' )[ c - ( c < 99 ? 67 : 99 ) ];

पूर्ण कोड

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace TestBench {
    public static class Program {
        private static Func<Char, String> f = c =>
            c + "upcake,onut,clair,royo,ingerbread,oneycomb,ce Cream Sandwich,ellybean,itkat,ollipop,arshmallow,ougat,reo"
                .Split( ',' )[ c - 67 ];

        static void Main( string[] args ) {
            List<Char>
                testCases = new List<Char>() {
                    'C',
                    'D',
                    'E',
                    'F',
                    'G',
                    'H',
                    'I',
                    'J',
                    'K',
                    'L',
                    'M',
                    'N',
                    'O',
                };

            foreach(Char testCase in testCases) {
                Console.WriteLine($" Input: {testCase}\nOutput: {f(testCase)}\n");
            }

            Console.ReadLine();
        }
    }
}

विज्ञप्ति

  • v1.0 - 147 bytes- प्रारंभिक समाधान।
  • v1.1 - -11 bytes- उधार ओलिवियर ग्रेजायर के विचार।
  • v1.2 - - 7 bytes- फ़ंक्शन इनपुट को स्पष्ट से निहित में बदल दिया।

टिप्पणियाँ

  • कोई नहीं

क्या आप प्रत्येक नाम से पहले अक्षर को हटाकर और स्ट्रिंग को जोड़कर कुछ भी सहेज सकते हैं, जो आप एरे से इनपुट कैरेक्टर में प्राप्त करते हैं?
झबरा

(char c)बस हो सकता हैc
LiefdeWen


1

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

{⍵/⍨⍞=⎕A[+\⍵∊⎕A]}'ABCupcakeDonutEclairFroyoGingerbreadHonecombIce cream sandwichJellybeanKitkatLollipopMarshmallowNougatOreo'

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

कैसे?

  • ⍵∊⎕A (लंबी स्ट्रिंग) 1 बड़े अक्षरों के लिए, 0 लोअरकेस / रिक्त स्थान के लिए।
  • +\ समूह (वापसी संख्या)। बड़े अक्षरों द्वारा।
  • ⎕A[...] एक अक्षर से दर्शाया गया बड़ा अक्षर
  • ⍵/⍨⍞= समूह ने उस संख्या को दर्शाया
  • {...}'...'लंबी स्ट्रिंग पर सेट करें

चतुर दृष्टिकोण।
एड्म

1

आर, 131 , 126 , 123 , 112 , 178 बाइट्स

grep(paste0('^',scan(,'')),c("Cupcake","Donut","Eclair","Froyo","Gingerbread","Honeycomb","Ice Cream Sandwich","Jellybean","Kitkat","Lollipop","Marshmallow","Nougat","Oreo"),v=T)

5 + 8 + 3 बाइट्स बचाने के लिए @Mark के लिए धन्यवाद




1

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

param($c)$c+('upcake0onut0clair0royo0ingerbread0oneycomb0ce cream sandwich0ellybean0itkat0ollipop0arshmallow0ougat0reo'-split0)[$c-99]

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

[char]लोअरकेस में एक इनपुट कैरेक्टर लेता है , और लोअरकेस में आउटपुट।

-split0इसके बजाय AdmBorkBork के सुझाव के लिए धन्यवाद -split','


आप 0एक विभाजक के रूप में और फिर -split0उद्धरणों को सहेजने के लिए उपयोग कर सकते हैं ।
AdmBorkBork

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