오레오? 아니요. 롤리팝일까요?


46

2009 년부터 Android 버전 코드 이름은 제과를 테마로합니다. 안드로이드 1.5는 컵 케이크, 안드로이드 1.6은 도넛, 안드로이드 2.0은 Eclair 등입니다. 실제로, 버전 이름은 알파벳순입니다!

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

도전

쓰기 프로그램 / 기능 에서 편지를 필요 CO하고 각각의 안드로이드 버전 코드 이름을 출력합니다.

사양

  • 표준 I / O 규칙이 적용됩니다 .
  • 표준 허점금지되어 있습니다.
  • 소문자 입력 또는 대문자 입력 또는 둘 다를 지원하도록 선택할 수 있습니다.
  • 출력은 제목 케이스 ( Cupcake) 또는 완전히 소문자 ( eclair) 일 수 있습니다. Ice cream sandwich그러나 원하는대로 대문자를 사용할 수 있습니다. (나는 그것이 너무 많은 혼란을 일으킬 것으로 기대하지 않았다 ...)
  • 이 과제는 모든 언어에서 가장 짧은 방법을 찾는 것이 아니라 각 언어에서 가장 짧은 방법을 찾는 것입니다 .
  • 달리 지정하지 않는 한 코드는 일반적으로 인코딩 UTF-8 에서 바이트 단위점수매겨 집니다.
  • 이 시퀀스를 계산하는 내장 함수 (Mathematica에는 하나 : P가있을 수 있음)가 허용 되지만 내장 함수에 의존하지 않는 솔루션을 포함하는 것이 좋습니다.
  • "실제적인"언어에 대한 설명도 권장 됩니다.

테스트 사례

대문자와 제목입니다.

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 후자는 제한 된 소스이기 때문에 전자가 더 나은 속임수라고 생각합니다.
Mr. Xcoder

9
다른 도전의 속임수 일 수도 있습니다. 그러나 괴물 이 문자열을 기호로 변환하도록 요청하는 것을 인식하도록 도와주세요 (해시 기반 솔루션으로 이어짐). 이것은 문자열 대 기호를 요구합니다.
Arnauld


5
그래, 나도 봤어 불행히도, 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 죄송하지만 당시 설명을 추가하기에는 너무 바빴습니다. 이것이 충분하기를 바랍니다.
Neil

1
와우, 나는 그것이 줄을 압축했는지 몰랐다!
매직 문어 Urn

차콜이 SOGL을이기는 방법은 믿을 수 없습니다.
Outgolfer Erik

젤리는 여전히 뛰고있다 : joy : codegolf.stackexchange.com/a/140092/73675
Hugo H

14

배시 + 코어의 Utils 131 128 122 117 바이트.

스크립트는 특수 (이상한) 문자를 포함하므로 Base64로 인코딩됩니다.

첫 번째 위치 매개 변수로 소문자로만 Android 코드 이름 문자를 승인합니다 . 전체 코드 이름 도 소문자로 반환합니다 .

CiPBUeICicG5tJ8W5a0Pc/hYuw7hkNMSIYkAPjARkdgFrdbh3NJgTmB4gRPiiQDJAaOyBH4ki14C
QDeKRNQJ8IJYER411DAnx0SO4CAKYmFzZTMyICQwfHRyICdBLVo0NwonICdhLXoKICd8Z3JlcCBe
JDEK

설명 :

#�Q��������s�X����!�>0�������`N`x������~$�^@7�D�    ��X5�0'�D�� 
base32 $0|tr 'A-Z47
' 'a-z
 '|grep ^$1
  • 처음 두 줄은 데이터가 포함 된 이진 Blob입니다 (자세한 내용은 답변 끝 부분 참조). Bash와 관련된 문제를 피하기 위해 첫 번째 줄은 비어 있습니다.
  • base32 $0 기본 줄 바꿈이 76자인 Base32로 스크립트 내용을 인코딩합니다.
  • tr 'A-Z47\n' 'a-z\n '합니다 (이 참고 \n리터럴 개행 문자로 작성된) 입력을 대체 할 소문자 4 , 7\n의해 \n, 공간공간 각각.
  • grep ^$1 스크립트에 첫 번째 인수로 제공된 문자열과 일치하는 행을 출력합니다.

이진 데이터

이 8 진수 스트림은 개행을 포함하지 않으며 RFC 4648에 따라 Base32로 디코딩 될 때 결과 문자열은 Android 코드 이름 목록입니다 ( 항목 구분 기호로 4 를 사용 하고 공백 문자 를 대체하려면 7 을 사용함 ). 특성 중에서 개행 문자와 해시 ( )로 시작하므로 주석으로 작동하므로 인터프리터가 실행하지 않습니다.#

또한이 Base32 구현의 76 자로 줄 바꿈 된 기본 줄은 아이스크림 샌드위치 공간 중 하나로 줄 바꿈을 사용하도록 항목을 다시 정렬했기 때문에 바이트를 도왔습니다 .


또한, 오프 주제 조금 가고, 나는 구글이 안된다는 생각 에서 직접 안드로이드 코드 명에 상용 제품을 광고한다.


2
니스, 이것은 정말 멋진 답변입니다! 사이트에 오신 것을 환영합니다 :)
DJMcMayhem

또 다른 배쉬 답변 : codegolf.stackexchange.com/a/140147/41835
Helio

1
이 버전은 적어도 내 시스템에서 버그가 있습니다 (bash 4.4.12, coreutils 8.27). 들어 f하나 : 두 개의 라인 출력 froyo신비와 다른 fgeyltmuzteibno.
MarSoft

1
@MarSoft : 감사합니다! 결정된. 안타깝게도 이제는 바이트가 더 필요합니다.
Helio

@MarSoft : 해결되었습니다! 이제 같은 바이트로!
Helio


11

배시 + 코어의 Utils (그렙) 132 130 바이트

가능한 간단한

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

1
via 입력 dd은 영리하지만 스크립트로 저장하고 $1대신 사용할 수 있습니까?
Dom Hastings

11

젤리 , 57 바이트

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

온라인으로 사용해보십시오!

Jonathan Allan 에게 -5 감사합니다 .


"아이스크림 샌드위치"의 공백에 자리 표시자를 사용하고 분할에 공백을 사용하여 4 바이트를 절약하십시오.Oị“¡ḟ¤Y7bh%XO€ḥıṣẎṄṢ°ḊḞİỌĿż0Y⁷ẠỵƈƭV>tÐNY_LɠðṅẒọX?v»Ḳ¤F⁾! y
Jonathan Allan

... 실제로 5 바이트를 만듭니다 ( "clair"가 사전에있을 때 "lair"를 사용했습니다) :Oị“¡ȥọ⁴ḷæĿɱ}#n#i®ÞSỊ3ƙɼıjṁ)-⁵g7ḥjC?4ƘẠʂ+ḋ¤⁺jṣð£?v»Ḳ¤F⁾! y
Jonathan Allan

@JonathanAllan 감사합니다 ... 잠깐 왜 내가 필요 F할까요? 아, 그것은 문자가 아닌 문자열로 입력을 받기 때문입니다
Erik the Outgolfer

8

C ++, 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]);}

온라인으로 사용해보십시오!

C, 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로 컴파일하여 저장할 수 있습니다.

온라인으로 사용해보십시오!



감사합니다! 약간의 골프 후 3 바이트를 절약 할 수있었습니다.
Steadybox

4
#importC ++에서? 내가 여기서 무엇을 놓치고 있습니까?
Abhinav Gauniyal

@AbhinavGauniyal : IIRC 일부 컴파일 경고 #import <cstdio>가 부족하기 때문에 추가하도록 조언했다고 생각합니다 #include <stdio.h>. 또는 내가 잘못 될 수있다
sergiol

@AbhinavGauniyal 표준 C ++은 아니지만 최소한 GCC와 MSVC가 있습니다.
Steadybox

7

자바 스크립트 (ES6) 137 136 바이트

Neil 덕분에 1 바이트 절약

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

데모


문자 범위에 공백을 포함시킬 수 없습니다 (아마도 \ s 포함)? 많은 JS 정규식을 사용하지 않았습니다
michi7x7

1
@ michi7x7 그는 아이스크림 샌드위치의 경우를 제외하고 대문자로 끝나는 일치가 필요하지만 ([a-z]| .)+문자열 중간에 아이스크림 샌드위치와도 작동 하지만 (1 바이트 절약) 코드 이름이 S에 도달하면 실패하기 시작합니다. 그러나).
Neil

@Neil [a-z\s]+은 대문자와 일치하지 않습니다. 당신이 JS에서 그렇게 할 수 있을지 모르겠어
michi7x7

@ michi7x7 그렇다면 아이스크림 샌드위치는 어떻게 작동합니까?
Neil

2
사용 Ice cream sandwich(이 제목 케이스는 아니지만) 시험의 경우처럼
michi7x7

5

apt , 81 79 바이트

여기에 표시되지 않는 몇 개의 문자가 포함되어 있습니다.

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

그것을 테스트

  • Oliver 덕분에 2 바이트가 절약되었습니다 .

설명

대문자 문자열의 암시 적 입력 U.

이름의 압축 된 문자열 (백틱 사이의 모든 것)은 f첫 문자로 구분되고 첫 문자없이 구분 q되어의 배열로 분할됩니다 ( ) f.

해당 배열 내에서 문자 코드 의 색인 ( g)에 요소를 가져옵니다 U. (예, 인덱스 래핑!)

이를 추가 U하고 결과 문자열을 암시 적으로 출력합니다.


1
좋은. 줄 f바꿈 대신 대신 분할하면 몇 바이트를 절약 할 수 있습니다 . ethproductions.github.io/japt/…
Oliver

@Oliver : 아, 고마워요. :) 내 전화에서 길을 걸어가는 동안 한참 동안은 얻지 못했을 것입니다.
Shaggy

5

엑셀 VBA, 137 (134) 132 바이트

셀에서 대문자 를 포함하는 예상 유형 Variant\String및 길이 로 입력을 가져 와서 VBE 즉시 창 함수로 출력하는 익명 VBE 즉시 창 함수1[A1]

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

공백 ce cream sandwich(char 32)에서  (char 160) ``(char 127)로 변경하고 Split함수 에서 쉼표 구분 기호를 제거 하기위한 -5 바이트


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

Dyalog APL, 158 (143) 131 바이트

@ Zacharý 덕분에 1 바이트 절약

@Gil 덕분에 12 바이트 절약

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

온라인으로 사용해보십시오!

어떻게?

',,,upcake...' -단어 목록

','(1↓¨=⊂⊢) -나누기 ','

(⎕A⍳⍵)⊃ -알파벳의 논쟁 장소에서 가져옵니다.

⍵, -편지에 추가


평평하다고 묘사 했 습니까?
Zacharý

또한 {⍵,∊⍬⍬'upcake' 'onut' 'clair' 'royo' 'ingerbread' 'oneycomb' 'ce cream sandwich' 'ellybean' 'itkat' 'ollipop' 'arshmallow' 'ougat' 'reo'[⎕A⍳⍵]}1 바이트 미만으로 작동합니다!
Zacharý

@ Zacharý ... "혼합"이기 때문입니다. 좋은 것! 왜 ∊ 아니고 ↑?
Uriel

평평 하기 때문에 실제로 평평하고 "혼합"되지 않습니다. ↑(1 2)(3 4)평평하지 않습니다 ∊(1 2)(3 4).
Zacharý

@ Zacharý OP는 다음과 같이 변경했습니다.
Uriel

3

엑셀, 154 바이트

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

나는 이런 식으로 Excel을 사용하는 것을 결코 생각하지 못했습니다. 완전한. 이제 WORD로
해보십시오

@tisaconundrum-우리는 저주받은 것에 대해 이야기하지 않습니다. VBA조차도 그것을 구할 수 없었습니다
Taylor Scott


3

Tcl 158 바이트

proc A s {puts $s[lindex {upcake onut clair royo ingerbread oneycomb "ce Cream Sandwich" ellybean itkat ollipop arshmallow ougat reo} [expr [scan $s %c]-67]]}

온라인으로 사용해보십시오!


2
Tcl! 여기에 너무 많은 Tcl 솔루션이 표시되지 않습니다. 부끄러운 일입니다.
Silvio Mayolo

2

하스켈, 145 바이트

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

3
takeWhile할 수 있습니다 fst.spandropWhile따라서 snd.span.
Laikoni

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

Pyth , 117 116 바이트

내 파이썬 답변 포트 .

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

여기 사용해보십시오! 또는 테스트 스위트를 확인하십시오

Pyth , 99 바이트 (70 자)

@insert_name_here 덕분에 -15 바이트 !

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

여기 사용해보십시오!


압축 된 문자열사용하여 15 바이트를 절약 할 수 있습니다 (답은 인쇄 할 수없는 문자를 포함해야 함).
insert_name_here

@insert_name_here 감사합니다.
Mr. Xcoder

2

Java (OpenJDK 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")

온라인으로 사용해보십시오!

  • Kevin Cruijssen 덕분에 정규식 솔루션에 4 바이트가 절약되었습니다!

1
.split도전 과제를 읽을 때 Java 답변을 찾을 수 없을 때 (두 번째 답변 페이지로 갈 때까지) 동일한 답변을 다른 구분 기호로만 게시하려고 했으므로 +1입니다. 정규식 답변으로 ([a-z]| .)+할 수 있습니다 [a-z ]+당신은 출력 "아이스크림 샌드위치"( "허용되기 때문에, 출력은 제목 경우에있을 수 있습니다 (컵케익) 또는 완전히 소문자 (에클 레어). 아이스크림 샌드위치처럼 그러나 당신을 대문자로 할 수있다. (나는 그렇게 많은 혼란을 일으킬 것으로 예상하지 않았다 ...) ")
Kevin Cruijssen

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@}

온라인으로 사용해보십시오!이것은 Cubically의 SBCS 에서 830 바이트입니다 .

  • ~입력을 읽고 @인쇄합니다. (입력이 유효하지 않으면 중단됩니다.)
  • 의 각 +.../...+...=7?6{...}(각각의 ASCII 값에 대한 입력을 비교하여 C, D, E,F 등) 및 내부 코드 실행 {...}가 동일한 경우를.
  • 각 코드 블록 ( {...})은 나머지 이름을 인쇄합니다 (첫 번째 문자는 이미 인쇄되어 있음).

TehPers의 ASCII to Cubically 번역기 덕분 에 매우 도움이되었습니다.


1
1060 바이트
Conor O'Brien


1

파이크 , 117 바이트

파이썬 답변 포트 .

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

여기 사용해보십시오!

Pyke의 새로운 골프 기술인 16 진 코드로 인코딩하면 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
파이크에는 "Android 릴리스"가 내장되어 있어야합니까?
Erik the Outgolfer

1
@EriktheOutgolfer 그것은 포켓몬을 가지고 있습니다.
Mr. Xcoder

1

C #을 , 147 136 129 바이트


데이터

  • 입력 Char c 버전 이름의 첫 글자
  • 출력 String 버전의 전체 이름

골프

// 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)];

언 골프

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- 초기 솔루션입니다.
  • 버전 1.1 - -11 bytes- 빌린 올리비에 그레 구 아르의 생각.
  • 1.2 - - 7 bytes- 명시 적에서 암시 적으로 함수 입력을 변경.

노트

  • 없음

각 이름에서 첫 번째 문자를 제거하고 배열에서 검색 한 문자열을 입력 문자에 추가하여 아무것도 저장할 수 있습니까?
Shaggy

(char c)수 있습니다c
LiefdeWen

1

R, 169155 바이트

sub(paste0(".*(",scan(,""),"[^A-Z]+).*"),"\\1","CupcakeDonutEclairFroyoGingerbreadHoneycombIce cream sandwichJellybeanKitkatLollipopMarshmallowNougatOreo")

1

Dyalog APL, 125 바이트

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

온라인으로 사용해보십시오!

어떻게?

  • ⍵∊⎕A (긴 문자열)은 대문자는 1, 소문자 / 공백은 0입니다.
  • +\ 대문자 (그룹) (반환 번호) ⍵.
  • ⎕A[...] 숫자로 표시된 대문자
  • ⍵/⍨⍞= 그 숫자로 표시된 그룹
  • {...}'...'긴 문자열로 설정

영리한 접근.
Adám

1

R, 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

PowerShell , 136134 바이트

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

온라인으로 사용해보십시오!

[char]입력 문자를 소문자로 취하고 소문자로 출력합니다.

-split0대신 AdmBorkBork의 제안에 -2 감사합니다 -split','.


0구분 기호 -split0로 사용하고 따옴표를 저장할 수 있습니다 .
AdmBorkBork

@AdmBorkBork 좋은 제안, 감사합니다!
TessellatingHeckler
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.