สร้างเพลงตัวอักษร


55

เป้าหมายของคุณคือสร้างเพลงตัวอักษรเป็นข้อความในแบบฟอร์มต่อไปนี้ (เรียงตามลำดับ):

A is for <word starting with A>
B is for <word starting with B>
C is for <word starting with C>
...
Z is for <word starting with Z>

ตัวอย่างผลลัพธ์:

A is for Apple
B is for Banana
C is for Carrot
D is for Door
E is for Elephant
F is for Frog
G is for Goat
H is for Hat
I is for Icicle
J is for Jelly
K is for Kangaroo
L is for Lovely
M is for Mom
N is for Never
O is for Open
P is for Paste
Q is for Queen
R is for Rice
S is for Star
T is for Test
U is for Underneath
V is for Very
W is for Water
X is for X-ray
Y is for Yellow
Z is for Zipper

กฎ:

  • "ตัวอักษร" ของเพลงแต่ละเพลงมีแถวของตัวเองดังนั้นจึงมี 26 บรรทัดและมีบรรทัดป้อนที่เป็นไปได้

  • เอาต์พุตจะคำนึงถึงขนาดตัวพิมพ์:

    • ตัวอักษรที่เริ่มต้นของแต่ละบรรทัดจะต้องเป็นตัวพิมพ์ใหญ่
    • is for เป็นตัวพิมพ์เล็ก
    • คำที่เลือกไม่จำเป็นต้องเป็นตัวพิมพ์ใหญ่ แต่อาจเป็น ทุกบรรทัดควรสอดคล้องกัน
  • คำที่เลือกสำหรับแต่ละบรรทัดนั้นขึ้นอยู่กับคุณ แต่จะต้องเป็นคำภาษาอังกฤษที่ถูกต้องที่มีตัวอักษรอย่างน้อย 3 ตัวและไม่สามารถเป็นคำร่วม (เช่นandหรือbut), คำอุทาน / อัศเจรีย์ (เช่นheyหรือyay), ตัวย่อ (เช่นXLS) หรือ ชื่อ (เช่นJon)

  • แม้ว่าฉันจะสงสัยว่าใครจะคิดว่าสั้นกว่านี้ แต่ฉันคิดว่ามันเป็นที่ยอมรับได้หากใช้วลีแทนคำเดียว ดังนั้นถ้าด้วยเหตุผลบางอย่างS is for Something smells fishy...สั้นกว่าให้ลองทำดู

  • ใส่ผลลัพธ์ของโปรแกรมลงในคำตอบของคุณหรืออย่างน้อยรายการคำที่คุณใช้ (หากมีลิงก์สำหรับเรียกใช้โค้ดของคุณออนไลน์เราไม่จำเป็นต้องเห็นผลลัพธ์ทั้งหมด)

  • รหัสที่สั้นที่สุดชนะ


ความท้าทายนี้ได้รับแรงบันดาลใจจากวิดีโอนี้


ฉันเดาว่าคำแสลงไม่ได้รับอนุญาตแม้ว่าจะอยู่ในรายการพจนานุกรมที่เหมาะสมหรือไม่? (เช่น "เมื่อเธอรู้ว่าเธอกำลังมุ่งหน้าไปที่ชนบทห่างไกลอีกครั้งเธอเพิ่งดึงuey !")
Jonathan Allan

1
ได้รับคำตอบบางส่วนเพลงนี้โดย Barenaked Ladies ดูเหมือนจะเกี่ยวข้องกัน
AdmBorkBork

1
@JonathanAllan ไม่มีคำสแลง พจนานุกรมมีหลายสิ่งหลายอย่างที่ไม่ใช่คำศัพท์ทางเทคนิค ตัวย่อเป็นหนึ่งคำสแลงเป็นอีกคำหนึ่ง
mbomb007

4
มันแย่มากที่สิ่งนี้ตกไปสู่การค้นหาคำ 3 ตัวอักษรที่ลงท้ายด้วยตัวอักษรเดียวกัน
12Me21

1
มีคำตอบสองสามคำที่ใช้พจนานุกรมภายนอก พวกเขาไม่ควรจะเพิ่มขนาดของไฟล์นั้นในรหัสของพวกเขา?
ท่อ

คำตอบ:


3

SOGL 0.8.1 , 60 32 ไบต์

χ3½⌠↓-ζ⁄∞Nη6′⁵‘Z{t",t5~r‘ooKo to

คำอธิบาย:

χ3½⌠↓-ζ⁄∞Nη6′⁵‘                   push "niooaaoasoioaiaaaoiineeaei"
               Z{                 for each letter of the uppercase alphabet
                 t                output the letter in a newline (and disable implicit output)
                  ",t5~r‘o        append " is for "
                          o       append the letter
                           Ko     append the 1st letter of the 1st string (the 2nd letters) and remove it
                              to  append "t"

นี่เป็นคำตอบที่โจนาธานอัลลันสวยมากแต่แปลเป็นภาษานี้

รุ่นเก่า: (SOGL 0.8.2)

Z"sηΒ…@Ν┘$JP6*š∙╬F▓÷Σ⁷4⌠    ⁹{Tīο⁾α⅝½Χ<▼½Ξμ‚‘θ’»∫wGKO",t5~r‘P≥o


Z                                                             push the uppercase alphabet
 "sηΒ…@Ν┘$JP6*š∙╬F▓÷Σ⁷4⌠    ⁹{Tīο⁾α⅝½Χ<▼½Ξμ‚‘                  push the 27 words separated by spaces using the languages english compression (BCD...XYZA)
                                          θ                   split on spaces
                                           ’»∫                repeat 27 times (push 0-based pointer)
                                              w               get the 1-indexed item of the array (so 0 = last, 1 = first, 2 = 2nd,...)
                                               G              put the 1st thing on stack ontop (the alphabet)
                                                K             get the 1st letter and remove it
                                                 O            output it
                                                  ",t5~r‘     push compressed " is for "
                                                         P    append that (and disable last auto-output)
                                                          ≥   put the 1st thing on the stack below everything
                                                           o  append the last thing (the word from the word list)

เอาท์พุท:

A is for against
B is for being
C is for could
D is for down
E is for even
F is for first
G is for good
H is for had
I is for into
J is for just
K is for know
L is for little
M is for much
N is for nothing
O is for other
P is for project
Q is for quite
R is for right
S is for said
T is for their
U is for under
V is for very
W is for with
X is for xavier
Y is for you
Z is for zoo

นี่ไม่ใช่ภาษาที่สั้นที่สุดที่สามารถทำได้ แต่ควรดีที่สุดเมื่อใช้คำที่กำหนดรหัสยาก


57

Bash (+ coreutils) 81, 87, 82, 78 ไบต์

ใช้ man page สำหรับXเป็นแหล่งที่มาของคำ

แข็งแรงเล่นกอล์ฟ

man xyst\  x|&grep -Po '\b[a-z]{4,} '|sed 's/\(.\)/\u\1 is for &/'|sort -uk1,1

การแก้ไข

  • ใช้ man page 'xyst' ที่ไม่มีอยู่ + |&เพื่อบันทึก 5 ไบต์;
  • ที่บันทึกไว้อีก 4 ไบต์โดยการแลกเปลี่ยนsedและการจัดเรียง

ทดสอบ

%man xyst\  x|&grep -Po '\b[a-z]{4,} '|sed 's/\(.\)/\u\1 is for &/'|sort -uk1,1

A is for also 
B is for build 
C is for computing 
D is for distribution 
E is for entry 
F is for following 
G is for graphics 
H is for hierarchical 
I is for implementations 
J is for just 
K is for keyboard 
L is for listing 
M is for manual 
N is for network 
O is for output 
P is for programs 
Q is for quite 
R is for runs 
S is for system 
T is for transparent 
U is for used 
V is for various 
W is for window 
X is for xyst 
Y is for your 
Z is for zeros 

3
คำ lsof และ xregs หรือไม่ :)
OldBunny2800

1
@ OldBunny2800 ควรได้รับการแก้ไขแล้ว
Zeppelin

2
ฉันค้นหามันและใช่ xyst เป็นคำที่แท้จริง :)
OldBunny2800

3
ดูเหมือนว่าเด็ก ๆ จะต้องเรียนรู้คำศัพท์ที่ยิ่งใหญ่ : D
mbomb007

1
@JonathanAllan น่าเสียดายที่หน้า man สำหรับ "x" ไม่สามารถใช้งานได้ใน TIO แต่นี่คือลิงค์ tio.run/nexus/…ซึ่งใช้ "man man" แทน เคล็ดลับกับxystคือman xystจะบ่นว่ามี "ไม่มีรายการคู่มือสำหรับ xyst" ไปยัง stderr ซึ่งจะถูกรวมเข้ากับ stdout ด้วย|&ดังนั้นจึงสามารถ grepping
zeppelin

33

Python 2 , 88 77 ไบต์

-11 ไบต์ขอบคุณ xnor (หลีกเลี่ยง zip โดยการข้ามผ่านสตริงและนับcได้จาก 65)

c=65
for x in'niooaauusoioaiuaaoiineeaei':print'%c is for %c%st'%(c,c,x);c+=1

ลองออนไลน์!

(พอร์ตของคำตอบ Jelly ของฉันเมื่อมันคือ 56 ไบต์)

A is for Ant
B is for Bit
C is for Cot
D is for Dot
E is for Eat
F is for Fat
G is for Gut
H is for Hut
I is for Ist
J is for Jot
K is for Kit
L is for Lot
M is for Mat
N is for Nit
O is for Out
P is for Pat
Q is for Qat
R is for Rot
S is for Sit
T is for Tit
U is for Unt
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

4
ฉันชอบวิธีการของคำที่ลงท้ายด้วย t ย้ำจะสั้นลงโดยการอัปเดตxในแบบคู่ขนาน
xnor

ฉลาดมากเช่นเคย ขอบคุณ!
Jonathan Allan

1
อะไรนะUnt? หาไม่พบที่ใดก็ได้
Albert Renshaw

ฉันไม่คิดว่าUntเป็นคำ แต่Utเพื่อให้คุณสามารถแทนที่nในตัวอักษรของคุณด้วย\0เพื่อให้ถูกต้องและเพิ่มเพียงหนึ่งไบต์เท่านั้น แก้ไขกฎที่ไม่เป็นไรบอกว่าจะต้องมีความยาว 3 ตัวอักษร ... hmmm
Albert Renshaw

4
@AlbertRenshaw UNT เป็นตุ่นยุโรปตามMerriam-Webster อีกทางเลือกหนึ่งคือ ult ตามWiktionaryไม่ใช่เพียงตัวย่อ (ซึ่งแสดงด้วยเครื่องหมายมหัพภาคเช่นult. )
Jonathan Allan

31

ทุบตี, 78, 69 ไบต์

Aardvarks, Babushkas และ Kamikazes!

แข็งแรงเล่นกอล์ฟ

sed -nr '/^[a-z]{9}$/s/(.)/\u\1 is for &/p'</u*/*/*/words|sort -uk1,1

การแก้ไข

  • กำจัด grep แล้ว -9 ไบต์

ทดสอบ

%sed -nr '/^[a-z]{9}$/s/(.)/\u\1 is for &/p'</u*/*/*/words|sort -uk1,1

A is for aardvarks
B is for babushkas
C is for cablecast
D is for dachshund
E is for eagerness
F is for fabricate
G is for gabardine
H is for habitable
I is for ibuprofen
J is for jabberers
K is for kamikazes
L is for labelling
M is for macaronis
N is for nailbrush
O is for obedience
P is for pacemaker
Q is for quadrants
R is for rabbinate
S is for sabotaged
T is for tableland
U is for ulcerated
V is for vacancies
W is for wackiness
X is for xylophone
Y is for yachtsman
Z is for zealously

ใช้ประโยชน์จาก/ usr / share / dict / words :

Words เป็นไฟล์มาตรฐานในระบบปฏิบัติการ Unix และ Unix ที่เหมือนกันทั้งหมดและเป็นรายการพจนานุกรมคำที่คั่นด้วยบรรทัดใหม่ มันถูกใช้ตัวอย่างเช่นโดยการตรวจสอบการสะกดคำ


14

PowerShell , 150 141 117 75 ไบต์

65..90|%{$i=[char]$_;"$i is for $i$('niooaauusoioaiuaaoiineeaei'[$_-65])t"}

ลองออนไลน์!

วนรอบจาก65เป็น90(เช่น ASCII AถึงZ) การวนซ้ำแต่ละครั้งเราเปลี่ยนจำนวนเต็มไปเป็นค่าที่เหมาะสมchar(เช่น ASCII 65สำหรับA) บันทึกสิ่งนั้นไว้$iเพื่อใช้ในภายหลังสตริงเชื่อมโยงกับด้วยis for $iและจากนั้นจึงตรึงอยู่ตรงกลางของคำที่เหมาะสม ทำโดยการจัดทำดัชนีเป็นสตริงที่มีความยาว (ยืมมาจากคำตอบของ Jonathan Allan ) เสร็จสิ้นด้วยตัวอักษรtเพื่อให้คำสามตัวอักษร

สตริงผลลัพธ์จะถูกทิ้งไว้บนไปป์ไลน์และ implicit Write-Outputที่ส่วนท้ายจะพิมพ์พวกมันด้วยการขึ้นบรรทัดใหม่

ที่บันทึกไว้พวงของขอบคุณไบต์เพื่อRod
WordList ที่ยืมมาจากคำตอบของโจนาธานอัลลัน


คุณสามารถลบอักษรตัวแรกของแต่ละคำ (ตัวพิมพ์ใหญ่) และพิมพ์ด้วย[char]$ ตัวอย่าง
Rod

@ Rod ขอบคุณ ฉันเชื่อมโยงกับสิ่งที่ฉันเพิ่งทำเพื่อเปลี่ยนวิธีการคำนวณลูปและวิธีการคำนวณดัชนีและบันทึกอีกมาก
AdmBorkBork

13

เยลลี่ขนาด 39 ไบต์

;“ẉbẊWS»,⁸K;;”t
“¤ṁp}œḊṄæ®’b6ị“ʠȷ»ØAç"Y

TryItOnline!

อิงจากรุ่น 56 ไบต์ (สองด้านล่าง) แต่เปลี่ยนคำเพื่อลบตัวอักษรกลางทั้งหมด"u"เพื่อให้สามารถจัดทำดัชนีเป็นคำในพจนานุกรม"anisole"* ซึ่งมีความสะดวกในการมีตัวอักษรที่เราต้องการทั้งหมดที่ดัชนีน้อยกว่าหก: 1:a, 2:n 3:i, 4:s, 5:o (6:l), 0:e(หมายเหตุ"e"ทางด้านขวาอยู่ที่ดัชนีศูนย์ [ยัง 7 และ -7 และหมายเลขอื่น ๆ สอดคล้องกับ 0 mod 7]) นอกจากนี้ยังเป็นช่วงต้นในพจนานุกรมเพื่อให้มีเพียงสองมากกว่ามากร่วมกันมากขึ้นสามดัชนีการค้นหาไบต์ ( "anisogamete"ยังจะทำงาน 2)

* ชื่อโรงเรียนเก่าสำหรับ methoxybenzene อีเทอร์หอมมักใช้ในน้ำหอม

A is for Ant
B is for Bit
C is for Cot
D is for Dot
E is for Eat
F is for Fat
G is for Got
H is for Hat
I is for Ist
J is for Jot
K is for Kit
L is for Lot
M is for Mat
N is for Nit
O is for Oat
P is for Pat
Q is for Qat
R is for Rot
S is for Sit
T is for Tit
U is for Unt
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

อย่างไร?

“¤ṁp}œḊṄæ®’b6ị“ʠȷ»ØAç"Y - Main link: no arguments
“¤ṁp}œḊṄæ®’             - base 250 compressed number -> 75711304811637630759
           b6           - convert to base 6 list -----------> [   2,    3,    5,    5,    1,    1,    5,    1,    4,    5,    3,    5,    1,    3,    1,    1,    1,    5,    3,    3,    2,    0,    0,    1,    0,    3]
              “ʠȷ»      -     word from Jelly's dictionary, "anisole" 
             ị          - index into that ------------------> [ "n" , "i" , "o" , "o" , "a" , "a" , "o" , "a" , "s" , "o" , "i" , "o" , "a" , "i" , "a" , "a" , "a" , "o" , "i" , "i" , "n" , "e" , "e" , "a" , "e" , "i"]
                  ØA    - get the uppercase alphabet
                    ç"  - zip with last link (1) as a dyad -> ["Ant","Bit","Cot","Dot","Eat","Fat","Got","Hat","Ist","Jot","Kit","Lot","Mat","Nit","Oat","Pat","Qat","Rot","Sit","Tit","Unt","Vet","Wet","Xat","Yet","Zit"]
                      Y - join with line feeds
                        - implicit print

;“ẉbẊWS»,⁸K;;”t - Link 1, join up the parts: Character, Two-Character-Word-Ending
;               - concatenate Character (e.g. "A") with
 “ẉbẊWS»        - the compressed string " is for" --->  "A is for"
        ,       - pair that with
         ⁸      - the left argument (Character) -----> ["A is for","A"]
          K     - join with spaces ------------------>  "A is for A"
           ;    - concatenate with right argument --->  "A is for An"
            ;   - concatenate with
             ”t -     "t" --------------------------->  "A is for Ant"

ก่อนหน้านี้ 46

“¤ṪŻIð^ƥ’b4ị⁾sap⁾pt¤ØAż,@K¥€“ẉbẊWS»ØAżYF”e272¦

คำทุกคำมีอักษรตัวที่สอง "s" หรือ "a" และตัวอักษรสุดท้าย "p" หรือ "t" โดยใช้การค้นหาฐานสี่ในผลิตภัณฑ์คาร์ทีเซียนของ "sa" และ "pt" ยกเว้น U "" คำซึ่งรหัสการเปลี่ยนแปลง "ใช้" (ใช้ค่อนข้างใหญ่F”e272¦ที่สิ้นสุด) - ถ้าฉันสามารถหารายการคำเช่นนี้ที่ไม่ได้มีข้อยกเว้นเช่นเราต้องการจะมองหาที่39 ไบต์

รายการคำศัพท์:

Asp, Bat, Cat, Dap, Eat, Fat, Gap, Hat, Ist, Jat, Kat, Lap, Mat, Nap, Oat, Pat, Qat, Rat, Sat, Tap, Use, Vat, Wat, Xat, Yap, Zap

ลองอันนี้


ก่อนหน้า 56 ไบต์

”tṁØA⁺,j“niooaauusoioaiuaaoiineeaei”œs3Z,@K¥€“ẉbẊWS»ØAżY

รายการคำศัพท์:

Ant, Bit, Cot, Dot, Eat, Fat, Gut, Hut, Ist, Jot, Kit, Lot, Mat, Nit, Out, Pat, Qat, Rot, Sit, Tit, Unt, Vet, Wet, Xat, Yet, Zit

มันถูกจัดรูปแบบให้ไป


ก่อนหน้า 83 ไบต์

“ẉbẊWS»WṁØA⁺żż“¦ịfe$ɲVPġþ¹Øt@ƑƊŀqṁŒƑOɦ⁴ḍẊḤṁr}Ƭ¢b⁻?q&øIụNẎ9eƲi⁸'ıB.;%V,¦İ⁷ẓk½»s5¤K€Y

... มาเล่นกันเถอะ "เห็นว่าตัวอักษรตัวไหนไม่มีสัตว์!" มีอยู่หนึ่งอันและมีเพียงอันเดียว - ระวังปลาเฮอริ่งแดง (คำโกหกปลาเฮอริ่งแดงคือซีนอนซึ่งเป็นองค์ประกอบที่เห็นได้ชัดว่าไม่ใช่สัตว์)เป็นคำสองห้าตัวอักษรที่นี่ไม่ใช่สัตว์ (ซีนอนเป็นหนึ่ง) :

Aphid, Bison, Camel, Dingo, Eagle, Finch, Gecko, Heron, Indri, Jabot, Koala, Lemur, Mouse, Nyala, Otter, Panda, Quail, Raven, Sloth, Tapir, Urial, Viper, Whale, Xenon, Yapok, Zebra

(แน่นอนว่านี่เป็นรูปแบบที่ถูกต้องลอง - ฉันแค่คิดว่าฉันประหยัดพื้นที่)


Xenonไม่ใช่สัตว์ ฉันแน่ใจว่าคุณกำลังเล่นตลกโดยมีH is for Herringแต่ฉันเดาไม่
mbomb007

มันเป็นเรื่องโกหก ซีนอนเป็นสิ่งที่ชัดเจน :)
Jonathan Allan

ฉันคิดว่าพวกเขากำลังคิดถึงxenopซึ่งไม่ได้อยู่ในพจนานุกรมของ Jelly
Jonathan Allan

ความคิดที่ยอดเยี่ยม! แต่Uutล่ะ
Greg Martin

@ GregMartin ฉันเห็นด้วยฉันคิดว่าคุณเริ่มเบี่ยงเบนคำพูดของคุณไปเป็นคำพยางค์
Magic Octopus Urn

10

เรติน่า , 89 87 ไบต์

บันทึก 2 ไบต์ขอบคุณ Martin Ender


ApBaCaDoEaFaGeHaIkaJeKiLeMeNeOpPeQaRaSaTiUniVaWeXysYurZi
[A-Z]
¶$& is for $&
^¶

m`$
t

ลองออนไลน์!

ฉันเลือกคำสำหรับจดหมายแต่ละฉบับที่ลงท้ายด้วยt(บางอันค่อนข้างคลุมเครือ)

คำอธิบาย


ApBaCaDoEaFaGeHaIkaJeKiLeMeNeOpPeQaRaSaTiUniVaWeXysYurZi

แทนที่อินพุตที่ไม่มีอยู่ (ว่าง) ด้วยข้อความด้านบน

[A-Z]
¶$& is for $&

(newline)(itself) is for (itself)แทนที่ตัวอักษรแต่ละตัวด้วยเงินทุน ผลลัพธ์นี้ในข้อความข้างต้นถูกแบ่งออกเป็นบรรทัดแยกเช่น

A is for Ap
B is for Ba
C is for Ca

... และต่อไป

^¶
​

อย่างไรก็ตามเนื่องจากมีการขึ้นบรรทัดใหม่ต่อหน้าแต่ละทุนจึงมีการขึ้นบรรทัดใหม่ที่ต้องนำออก มันจะถูกลบออกในขั้นตอนนี้

m`$
t

ใส่ในตอนท้ายของทุกสายตั้งแต่คำที่ใช้ในเพลงทุกสิ้นสุดลงในtt


คุณไม่จำเป็นต้องจับตัวอักษรตัวพิมพ์ใหญ่ เพียงแค่ใช้$&หรือแทน$0 $1ที่จริงแล้วอาจบันทึกจำนวนไบต์บนสเตจแยกของฉัน
Martin Ender

@MartinEnder ขอบคุณ สิ่งที่ไม่$&ทำตรง? ฉันไม่เห็นมันบนวิกิ GitHub
แมวธุรกิจ

มันเป็นชื่อแทน$0(และเป็นเพียงส่วนหนึ่งของ. NET รสเช่นเดียวกับรสชาติอื่น ๆ ส่วนใหญ่)
Martin Ender

ใช้คำสั้น ๆ เพื่อทำให้มันสั้นลงถึง 83 ลองออนไลน์
Jonathan Allan

8

เรติน่า , 92 88 ไบต์

ที่บันทึกไว้ 4 ไบต์โดยการยืมความคิดจากคำตอบของธุรกิจของแมว

จำนวนไบต์ถือว่าการเข้ารหัส ISO 8859-1


AddBCDEelFGHItsJetKitLMNetOilPQatRSTUrnVatWXisYesZit
[A-Z]
¶$& is for $&
m` .$
$&ad
G`.

ลองออนไลน์!

อิงจากรายการคำศัพท์ของ AdmBorkBorkแต่ฉันได้เปลี่ยนคำอีกสองสามคำเป็นคำที่ลงท้ายด้วยadเพื่อบันทึกไบต์เพิ่มเติมในคำต่อท้ายทั่วไป

คำอธิบาย


AddBCDEelFGHItsJetKitLMNetOilPQatRSTUrnVatWXisYesZit

เปลี่ยนอินพุตเปล่า (ไม่มีอยู่) เป็นสตริงนี้ มันมีตัวอักษรทั้งหมดรวมถึงคำที่เหลือซึ่งไม่ได้ลงท้ายadด้วย

[A-Z]
¶$& is for $&

X is for Xใส่เลื่อนบรรทัดก่อนตัวอักษรแต่ละกรณีบนแล้วทำให้มันกลายเป็น

m` .$
$&ad

จับคู่ตัวอักษรที่ตอนนี้ด้วยตัวเองและผนวกadเพื่อเติมคำที่สั้นลง

G`.

Aยกเลิกบรรทัดว่างที่ถูกสร้างขึ้นโดยการใส่เลื่อนบรรทัดก่อน


8

PHP, 122 124 127 120 115 101 ไบต์

ตาม<letter><filler>tโครงสร้าง"มาตรฐาน"
ฉันพยายามคิดหาคำที่ไม่เคยมีใครใช้มาก่อน
หากคุณเห็นคำที่คุณต้องการให้ฉันแทนที่บอกฉัน

foreach(range(A,Z)as$k=>$c)echo"$c is for $c",ceaoaaei0eieeouoaaei0eeaei[$k]?:[I=>ka,U=>ni][$c],"t\n";

ขึ้นบรรทัดใหม่จะถูกแทนด้วย\nแต่นับเป็น 1 ไบต์


เอาท์พุท:

A is for Act
B is for Bet
C is for Cat
D is for Dot
E is for Eat
F is for Fat
G is for Get
H is for Hit
I is for Ikat
J is for Jet
K is for Kit
L is for Let
M is for Met
N is for Not
O is for Out
P is for Pot
Q is for Qat
R is for Rat
S is for Set
T is for Tit
U is for Unit
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

คำแปลก ๆ :

  • ikat :

    Ikat หรือ ikkat เป็นเทคนิคการย้อมสีที่ใช้ในการทำลวดลายสิ่งทอที่มีพนักงานต่อต้านการย้อมสีบนเส้นด้ายก่อนที่จะทำการย้อมและการทอผ้า

  • xat :

    เสาแกะสลักสร้างขึ้นเพื่อเป็นที่ระลึกถึงคนตายโดยชาวอินเดียบางคนในอเมริกาเหนือตะวันตก

  • zit :

    สิว ฝ้า

  • qat :

    Catha edulis (คาด, qat) เป็นพืชดอกพื้นเมืองของเขาของแอฟริกาและคาบสมุทรอาหรับ


ทางออกที่ฉลาดฉันจะทำสิ่งที่คล้ายกันดีใจที่ได้เห็นสิ่งนี้! +1
Albert Renshaw

1
นี่ไม่ใช่คำภาษาอังกฤษ ....
Conor O'Brien

@ ConorO'Brien คุณแน่ใจหรือไม่ PHP เขียนด้วยภาษาอังกฤษเท่าที่ฉันรู้
Ismael Miguel

5
@IsmaelMiguel สิ่งที่ชอบvprintfและzend_versionแน่นอนที่สุดไม่ใช่คำภาษาอังกฤษ หน่วยงานเหล่านี้น้อยมากที่เป็นคำพูด
Conor O'Brien

1
ฉันจะไม่เรียกzitคำแปลก ๆ อย่างน้อยฉันคิดว่าทุกคนควรรู้แล้วว่ามันแปลว่าอะไร
mbomb007

6

Pyke, 55 51 48 ไบต์

26.f[1R].C".d"R+E)DGjt@.^.Il 6>( F['h .dRdJl5

ลองที่นี่!

ลิงก์มีความยาว 3 และไม่ผ่านการรับรองเนื่องจากมีคำที่ประกอบด้วยตัวเชื่อม

    [1R].C".d"R+E)                            - def function [i):
     1R]                                      -     [1, i]
        .C                                    -    chr(^)
          ".d"R+                              -   ".d"+ ^
                E                             -  eval(^) (dictionary lookup of length 1)
                                              -    gets the `i`th word in the dictionary

26.f[             DGjt@.^.Il 6>(              -  first_26():
    [                                         -     function(i)
                       .^                     -    ^.startswith(v)
                   Gjt@                       -     alphabet[current_iter-1]
                         .Il 6>               -   if ^:
                           l 6>               -    len(function(i)) > 6
                                 F['h .dRdJl5 - for i in ^:
                                  ['h         -     function(i)[0], function(i)
                                      .d      -    "is for" (unprintables 0x02, 0x07, 0x06)
                                        R     -    rotate(^, ^^)
                                         dJ   -   " ".join(^)
                                           l5 -  ^.capitalize()

ขาออก:

A is for available
B is for because
C is for community
D is for download
E is for english
F is for features
G is for getting
H is for hardware
I is for increase
J is for jewelry
K is for kitchen
L is for locations
M is for manufacturer
N is for northern
O is for outdoor
P is for protein
Q is for quickly
R is for religion
S is for surgery
T is for thousands
U is for universal
V is for vehicles
W is for weekend
X is for xenical
Y is for youngest
Z is for zoofilia

คุณสามารถทดสอบสิ่งนี้นอก Pyke โดยใช้อัลกอริทึมเดียวกัน ต้องdictionary.json

import json, string

with open("dictionary.json") as f_obj:
    words=json.load(f_obj)

rtn=[]
i=0
while len(rtn) != 26:
    cur_word=words[i]
    if cur_word[0]==string.lowercase[len(rtn)]:
        if len(cur_word) > 6:
            rtn.append(cur_word)
    i += 1

for i in rtn:
    print("{} is for {}".format(i[0].upper(), i))

ไม่ได้ฉันได้รับข้อผิดพลาดในการเรียกใช้รหัสของคุณ
mbomb007

Timeout running code. BAD EVALตรวจสอบให้แน่ใจว่าคุณอัปเดตลิงก์ "ลองออนไลน์"
mbomb007

2
Z is for zoofiliaฉันจะพิจารณาอย่างจริงจังก่อนที่จะให้ลูก ๆ ร้องเพลงนี้
zeppelin


สำหรับทุกคนที่ทำสองครั้งเหมือนที่ฉันทำ: ภาษาอังกฤษไม่ได้เป็นตัวพิมพ์ใหญ่เสมอ ;)
DLosc

6

Japt , 52 50 ไบต์

ร่วมมือกับ @ETHproductions

;B£[R`  f `Od"¥¥º"gY]qXÃx

มี unprintables มากมาย ทดสอบออนไลน์!

รายการคำคือ:

All Bar Can Dan Ear Fan Gas Has Ill Jar Kit Led Man Nit Oar Pan Qat Rat Sat Tan Udo Vat War Xis Yes Zit

Japt ใช้ไลบรารีการบีบอัดสตริง shocoซึ่งช่วยลดการทำงานทั่วไปของตัวอักษรตัวพิมพ์เล็กลงใน byte นี่คือรายการเต็มรูปแบบของการวิ่งสองตัวอักษรทั้งหมดที่รวมเป็นหนึ่งไบต์:

an,ar,as,at,be,bl,bo,bu,ca,ce,ch,co,da,de,di,do,ed,en,er,es,ha,he,hi,ho,im,in,is,it,le,li,ll,ly,ma,me,mi,mo,nd,ne,ng,nt,of,on,or,ou,ra,re,ri,ro,se,sh,si,st,te,th,ti,to,ul,ur,us,ut,wa,we,wh,wi

ดังนั้นความคิดคือการสร้างคำที่มีหนึ่งในคู่เหล่านี้สำหรับตัวอักษรแต่ละตัว

;B£   [R`  f `    Od"string"gY]qXÃ x
;BmXY{[R" is for "Od"string"gY]qX} x

;                                      // Among other things, set B to "ABC...XYZ".
 B                                     // Split B into chars.
    mXY{                           }   // Map each item X and index Y to the following:
                      "string"gY       //   Take the char at index Y in the compressed str.
                    Od                 //   Decompress.
        [R" is for "            ]      //   Put this in an array with a newline and " is for ".
                                 qX    //   Join on X, giving "\n{X} is for {word}".
                                    x  // Trim. This removes the leading newline.
                                       // Implicit: output result of last expression

สิ่งหนึ่งที่น่าสนใจที่จะต้องทราบก็คือในขณะที่ Japt สามารถขยายสายอักขระที่ห่อหุ้ม backticks โดยปริยายจริง ๆ แล้วนี่คือไบต์นานขึ้นเพราะคุณต้องคว้าสองตัวอักษรในสตริงที่คลายการบีบอัดแทนที่จะเป็นหนึ่ง


6

05AB1E , 45 42 39 38 37 36 ไบต์

Au'Æå•à¡P°€kš¦zᮕSè)øvy¬“ÿ€ˆ€‡ ÿt“,

ลองออนไลน์!

คำอธิบาย

Auผลักดันตัวอักษรตัวพิมพ์ใหญ่ ผลักดันให้คำว่า
'Æå ผลักดันให้จำนวนฐาน 10 ใช้ตัวเลขเหล่านั้นเพื่อดัชนีลง รหัสไปรษณีย์สตริงเหล่านั้นเข้าด้วยกันในรายการscenario
•à¡P°€kš¦zᮕ36774474076746444766322426
scenario
[An, Bi, Co, ..., Zi]

v                  # for each element in the list
 y                 # push it
  ¬                # push it's first letter
   “ÿ€ˆ€‡ ÿt“      # push the string "ÿ is for ÿt" 
                   # replacing ÿ with with the top element of the stack
             ,     # print with newline

คำที่ใช้: ['Ant', 'Bit', 'Cot', 'Dot', 'Eat', 'Fat', 'Got', 'Hat', 'Ist', 'Jot', 'Kit', 'Lot', 'Mat', 'Nit', 'Oat', 'Pat', 'Qat', 'Rot', 'Sit', 'Tit', 'Unt', 'Vet', 'Wet', 'Xat', 'Yet', 'Zit']

รุ่น 33 ไบต์ใช้คำบางคำที่ฉันไม่แน่ใจ

Au'†Ž•4Ãðzòç•3BSè)øvy¬“ÿ€ˆ€‡ ÿt“,

คำ: ['Ant', 'Bat', 'Cat', 'Dat', 'Eat', 'Fat', 'Gat', 'Hat', 'Ist', 'Jat', 'Kat', 'Lat', 'Mat', 'Nat', 'Oat', 'Pat', 'Qat', 'Rat', 'Sat', 'Tat', 'Ust', 'Vat', 'Wat', 'Xat', 'Yat', 'Zat']


6

Ruby, 93 84 69 63 58 62 ไบต์

?A.upto(?Z){|l|puts l+" is for #{"AnDoIsUn"[/#{l}./]||l+?a}t"}

เอาท์พุท:

A is for Ant
B is for Bat
C is for Cat
D is for Dot
E is for Eat
F is for Fat
G is for Gat
H is for Hat
I is for Ist
J is for Jat
K is for Kat
L is for Lat
M is for Mat
N is for Nat
O is for Oat
P is for Pat
Q is for Qat
R is for Rat
S is for Sat
T is for Tat
U is for Unt
V is for Vat
W is for Wat
X is for Xat
Y is for Yat
Z is for Zat

คำ 3 ตัวอักษรทั้งหมดที่ลงท้ายด้วย 't' ส่วนใหญ่เป็น 'at'

ใช้คำที่ถกเถียงกัน (iat, dat, amp. ump) - 55 ไบต์:

?A.upto(?Z){|l|puts l+" is for "+l+("AU"[l]?"mp":"at")}

ยังคงพยายามที่จะหารูปแบบฉันคิดว่ามันเป็นไปได้ที่จะใช้ตอนจบที่แตกต่างกันเพียง 2 และทำให้ทุกอย่างง่ายขึ้น

ขอบคุณ @Value Ink และ @Business cat ที่ช่วย


1
Qatและ Xis (พหูพจน์ของXi ) เป็นคำดังนั้นคุณสามารถใช้และลด regex การค้นหาของคุณเป็น/#{l}../
Value Ink

ขอบคุณฉันคิดถึงสิ่งที่คล้ายกัน แต่ตอนนี้ฉันไม่ได้อยู่ที่พีซีฉันจะตรวจสอบสิ่งนั้นอย่างแน่นอน
GB

ที่จริงฉันพยายามค้นหาคำ 5 ตัวอักษรสำหรับตัวอักษรที่หายไป: อาร์เรย์เรียงความจารึก ... แต่ฉันติดอยู่กับที่ :-(
GB

1
แคทkitเป็นคำที่ถูกต้องเพื่อให้คุณสามารถลบกรณีพิเศษสำหรับ
แมวธุรกิจ

1
ฉันคิดว่า "dat" และ "zat" แต่ทั้งคู่มีความเหมือนกัน (นั่น) และคำสแลงซึ่งทั้งสองประเภทคำไม่ถูกกัน "amp" และ "ump" ดูเหมือนจะเป็นตัวย่อของ "ampere" / "amplify" และ "umpire" "IAT" เป็นตัวย่อดังนั้นจึงไม่ดีเช่นกัน
Jonathan Allan

6

///, 163 ไบต์

/2/ad//1/ is for /A1Add
B1B2
C1C2
D1D2
E1Eat
F1F2
G1Goo
H1H2
I1Irk
J1Job
K1Kob
L1L2
M1M2
N1Nob
O1Owl
P1P2
Q1Qat
R1R2
S1S2
T1T2
U1Use
V1Vat
W1W2
X1X-ray
Y1Yob
Z1Zoo

ลองออนไลน์

โยบ - เอ็น - เพื่อนที่โหดร้ายและโหดร้าย

หืมเรียนรู้บางอย่างในวันนี้ ...


2
ในสหราชอาณาจักร yob เป็น lout, thug, or boor; ไร้เหตุผลและเกเรยิ่งกว่าความโหดร้ายและโหดร้าย
Jonathan Allan

1
ในภาษารัสเซีย "Yob" เป็นคำกริยาหยาบคายที่ผ่านมาซึ่งโดยทั่วไปแล้วจะเทียบเท่ากับ "f * ck" ในภาษาอังกฤษ ยิ่งคุณรู้ ...
Mr Scapegrace

5

05AB1E , 72 68 ไบต์

รหัส:

”–³æéÁéî¹àæÑå꧵™Ä‚æ†Í„΢׆™ƒÛÌ´ŸÄ«©‡¯†‚IJ‚Ò„©É€ŠÛì„”#vy¬…ÿ€ˆ€‡ð«ì,

ใช้การเข้ารหัสCP-1252 ลองออนไลน์!

คำอธิบาย

รหัสต่อไปนี้:

”–³æéÁéî¹àæÑå꧵™Ä‚æ†Í„΢׆™ƒÛÌ´ŸÄ«©‡¯†‚IJ‚Ò„©É€ŠÛì„”#

ผลักอาร์เรย์นี้:

['Apple', 'Banana', 'Carol', 'Door', 'Elephant', 'Frog', 'Goat', 'Hat', 'Ice', 'January', 'Key', 'Love', 'Mom', 'Never', 'Open', 'Paste', 'Queen', 'Rice', 'Star', 'Test', 'Underwear', 'Very', 'Water', 'Xanax', 'Yellow', 'Zoloft']

และประมวลผลโดยใช้รหัสต่อไปนี้:

vy¬…ÿ€ˆ€‡ð«ì,

vy              # For each string in the array
  ¬             # Get the first letter of that string
   …ÿ€ˆ€‡       # Push the string "ÿ is for" where 'ÿ' is the first letter of the string
         ð«     # Append a space character
           ì    # Prepend this string to the current string from the array
            ,   # Print with a newline

คุณช่วยอธิบายได้ไหมว่าทำไมถึงผลักอาร์เรย์นั้น
Magic Octopus Urn

ฉันคิดว่า 05AB1E มีคำบางคำที่สามารถแทนด้วย 2 ไบต์ในสตริงได้
12Me21

@ 12Me21 เยี่ยมมาก! ”–³”=Appleและint(–³,214)=23891แต่ผมยังไม่เห็นความสัมพันธ์ที่นี่
Magic Octopus Urn

ฉันเชื่อว่านี่คือรายการ: github.com/Adriandmen/05AB1E/blob/master/dictionary.py
12Me21

2
@carusocomputing ต่อไปนี้เป็นคำอธิบายโดยละเอียดเพิ่มเติมเกี่ยวกับวิธีการบีบอัดและคลายการบีบอัด
Adnan

5

Clojure, 159 232 ไบต์

ทีนี้มันก็ไม่ใช่วิธีแก้ปัญหาการแข่งขันเพราะมันยากกว่าที่จะ hardcode คำที่ใช้ วางไว้ที่นั่นเพียงเพื่อให้ได้คำตอบที่ถูกต้อง (และไม่ใช้รายการคำศัพท์ของผู้อื่น)

(mapv #(println(str(char %)" is for"(first(re-seq(re-pattern(str" "(char(+ % 32))"+\\w{3,} "))
    (reduce(fn[a b](str a(with-out-str(load-string(str "(doc "b")")))))" xyst "(map str(keys(ns-publics 'clojure.core))))))))(range 65 91))

โดยทั่วไปยังคงได้รับฟังก์ชั่นทั้งหมดที่กำหนดไว้ในclojure.corenamespace แต่หลังจากนั้นประเมินdoc <function name>และวางลงในสตริง หลังจากนั้นต่อมันเป็นสตริงขนาดใหญ่หนึ่ง (พร้อมคำxyst) และค้นหาคำที่เหมาะสมจากที่นั่น ควรเรียกใช้ใน Clojure REPL

เอาท์พุท:

A is for arbitrary
B is for being
C is for changes
D is for determined
E is for exception
F is for failed
G is for given
H is for held
I is for items
J is for java
K is for keys
L is for lazy
M is for must
N is for notified
O is for option
P is for performed
Q is for queued
R is for returns
S is for state
T is for true
U is for uses
V is for validator
W is for were
X is for xyst
Y is for yields
Z is for zero

โซลูชันเก่า:

(mapv #(println(str(char %)" is for "(some(fn[a](and(=(.charAt a 0)(char(+ % 32)))a))(conj(map str(keys(ns-publics 'clojure.core)))"orb""yes"))))(range 65 91))

orไม่ใช่orbสำหรับ 1 ไบต์
wizzwizz4

1
ความยาวต่ำสุดคือ 3 ตัวอักษร
12Me21

@ mbomb007 อัปเดตแล้ว
หน้าผา

4

JavaScript (ES6), 82 ไบต์

_=>btoa`pb
è¡Záî"Âh*"è1£b:ãÚA¤hJ$âRu^YåÚaæb`.replace(/(.)./g,`$1 is for $&t
`)

ฟังก์ชันที่ไม่ระบุชื่อส่งคืนสตริง มี unprintables นี่คือรุ่นที่ไม่:

_=>btoa`\x02pb
\x80è\x11¡Z\x18áî"Âh*"è1£b:ãÚA¤hJ$âRu^YåÚaæb`.replace(/(.)./g,`$1 is for $&t
`)

สิ่งนี้ใช้เทคนิคของ @ JonathanAllen โดยใช้คำเพียงสามตัวอักษรที่ลงท้ายtด้วย สตริง decompresses AnBiCoDoEaFaGOHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZiไป

ฉันพยายามผูกมัดตัวอักษรสองตัวที่เป็นเช่นนี้:

Ace
 Bee
  Cee
   Dew
    Ewe
     ...

ตอนนี้ฉันทำทุกอย่างจนXติด แต่Y; เท่าที่ผมสามารถบอกได้เพียงบรรลุสามตัวอักษรXคำและไม่มีคำว่าสามตัวอักษรที่ขึ้นต้นด้วยXisYs

สำหรับเร็กคอร์ดสตริงทั้งหมดคือceeeweeereueaebiueeiziais...


จาก Wiktionary คุณสามารถใช้uziและtiz...
DLosc

@DLosc ความคิดที่ดี จากนั้นคุณจะต้องทำอย่างไรsei, skiหรือsriซึ่งใบคุณมีree, roe, rue, ryeซึ่งใบคุณมี ... เพียงสามตัวอักษรq-words ฉันสามารถหาอยู่qat, และqis quaมีหน้า Wiktionary ที่มีคำสามตัวอักษรมากกว่านี้หรือไม่?
ETHproductions

มีหมวดหมู่สำหรับคำสามตัวอักษร แต่ไม่ใช่รายการที่สมบูรณ์ ตัวอย่างเช่นไม่มีคิว (ซึ่งฉันรู้เพียงเพราะมีคำตอบอื่นที่นี่ใช้) (ไม่แน่ใจว่ามีp-word ที่ลงท้ายด้วยu)
DLosc

@DLosc ฉันใช้อยู่แล้วpiuดังนั้นมันจึงไม่ใช่ปัญหาเลย: P ขอบคุณ!
ETHproductions

ฮึ่ม piuดูเหมือนว่าจะเป็นแนวชายแดนที่สวยงาม - วิกิพจนานุกรมไม่ได้เป็นภาษาอังกฤษและ dictionary.com มีเป็นpiù(ไม่ว่าเราจะพิจารณาสำเนียงการท้าทายนี้อย่างไร) แต่ใช่ys_จะเป็นปัญหา
DLosc

3

Mathematica, 97 ไบต์

a@c_:={ToUpperCase@c," is for ",Select[WordList[],#~StringTake~1==c&][[3]],"
"};a/@Alphabet[]<>""

ค้นหา Mathematica ของWordListคำที่สามที่ขึ้นต้นด้วยตัวอักษรแต่ละตัว วิธีนี้จะหลีกเลี่ยงคำและตัวอักษรหนึ่งตัว มีการขึ้นบรรทัดใหม่

A is for aardvark
B is for babble
C is for cabala
D is for dabbled
E is for eagerly
F is for fable
G is for gabble
H is for haberdashery
I is for iambus
J is for jabberer
K is for kaleidoscope
L is for label
M is for mac
N is for nacelle
O is for oak
P is for pabulum
Q is for quackery
R is for rabbinate
S is for sable
T is for tabbouleh
U is for udder
V is for vacant
W is for wad
X is for xenophobic
Y is for yachting
Z is for zapper

eep ลืมไปโดยสิ้นเชิงขอบคุณ
Greg Martin

3

Groovy, 76 73 ไบต์

(แก้ไขจาก 76 ถึง 73 ไบต์ขอบคุณแมว)

แรงบันดาลใจจากสารละลายทับทิม:

('A'..'Z').any{i->println"$i is for ${'AntIvyUse'.find(/$i../)?:i+'at'}"}

เราใช้anyแทนกันเพราะมันสั้นและงบ println ทั้งหมดคืนค่าเท็จ สำหรับกรณีพิเศษในสตริงเราใช้ String.find ซึ่งใน groovy ส่งคืนการจับคู่หรือ null บน null เราใช้ตัวดำเนินการ elvis ?:เพื่อส่งคืนคำที่ลงท้ายด้วยatแทน

พิมพ์ออกมา:

A is for Ant
B is for Bat
C is for Cat
D is for Dat
E is for Eat
F is for Fat
G is for Gat
H is for Hat
I is for Ivy
J is for Jat
K is for Kat
L is for Lat
M is for Mat
N is for Nat
O is for Oat
P is for Pat
Q is for Qat
R is for Rat
S is for Sat
T is for Tat
U is for Use
V is for Vat
W is for Wat
X is for Xat
Y is for Yat
Z is for Zat

Groovy เรียกซ้ำ 74 ไบต์

{i->println"$i is for ${'AntIvyUse'.find(/$i../)?:i+'at'}";call(++i)}('A')

พิมพ์ข้อความออกมาจากคำตอบแรกจากนั้นพ่น PatternFormatException เราเรียกการปิดแบบวนซ้ำโดยเริ่มต้นด้วย 'A' และเพิ่มขึ้นเรื่อย ๆ++charจนกว่าตัวละครจะZเกิดข้อผิดพลาด

Groovy โดยการโกง 77 ไบต์

ด้วยความเสี่ยงของการถูกลงโทษ:

print 'http://codegolf.stackexchange.com/q/109502'.toURL().text[21796..22189]

เช่นอ่านข้อมูลในหน้านี้และพิมพ์คำจำกัดความของคำตอบที่ถูกต้องในตอนต้น ในการป้องกันของฉัน ... มันจะพิมพ์คำตอบที่ร้องขอ ... ตอนนี้ไม่มีใครแก้ไขหน้า ...

Groovy ใช้ 'คูณ' ขนาด 81 ไบต์

การสร้างคำตอบของไพ ธ อนด้วยรูปแบบคำตัวอักษรสามตัว:

26.times{i,c=i+65->printf"%c is for %c${'niooaauusoioaiuaaoiineeaei'[i]}t\n",c,c}

พิมพ์:

A is for Ant
B is for Bit
C is for Cot
D is for Dot
E is for Eat
F is for Fat
G is for Gut
H is for Hut
I is for Ist
J is for Jot
K is for Kit
L is for Lot
M is for Mat
N is for Nit
O is for Out
P is for Pat
Q is for Qat
R is for Rot
S is for Sit
T is for Tit
U is for Unt
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

Groovy โดยเรียกซ้ำบน main (... ), 83 bytes

สมมติว่าเรานับบรรทัดใหม่เป็นอักขระตัวเดียว

i=args?args[0]:'A'
println"$i is for ${'AntIvyUse'.find(/$i../)?:i+'at'}"
main(++i)

พิมพ์ข้อความจากคำตอบแรกจากนั้นพ่น PatternSyntaxException

Groovy ใช้ eachWithIndex 88 ไบต์

'niooaauusoioaiuaaoiineeaei'.eachWithIndex{c,i->char x=i+65;println "$x is for $x${c}t"}

Groovy ใช้ทรานสโพสต์ 102 ไบต์

['A'..'Z','niooaauusoioaiuaaoiineeaei'as List].transpose().each{println it[0]+" is for ${it.join()}t"}

แคทkitเป็นคำที่ถูกต้องเพื่อให้คุณสามารถลบกรณีพิเศษสำหรับ
แมวธุรกิจ

แก้ไขแล้วขอบคุณ บันทึกฉัน 3 ไบต์
:)

2

05AB1E , 77 ไบต์

•‹T1qA‹rËöf#ùqÈ$>M©ÈñM£r°§°Ü]€¡3¸/©#bÍ'ò7DÉø½D—¹û©˜Òו36B3ôvy™¬"ÿ is for ÿ"}»

ลองออนไลน์!

ใช้สตริงที่บีบอัดต่อไปนี้:

ASSBINCATDOTEATFATGOTHATILLJOTKITLOTMETNOTOATPATQUEROTSETTITUSEVATWETXISYIPZAP

แปลงเป็น Base-214:

‹T1qA‹rËöf#ùqÈ$>M©ÈñM£r°§°Ü]€¡3¸/©#bÍ'ò7DÉø½D—¹û©˜Ò×

ใช้รายการคำศัพท์ 3 ตัวอักษร: http://wordfinder.yourdictionary.com/letter-words/3

เอาท์พุทเป็นดังนี้:

A is for Ass
B is for Bin
C is for Cat
D is for Dot
E is for Eat
F is for Fat
G is for Got
H is for Hat
I is for Ill
J is for Jot
K is for Kit
L is for Lot
M is for Met
N is for Not
O is for Oat
P is for Pat
Q is for Que
R is for Rot
S is for Set
T is for Tit
U is for Use
V is for Vat
W is for Wet
X is for Xis
Y is for Yip
Z is for Zap

มีรุ่น 70 ไบต์ แต่ไม่อนุญาตให้ใช้ตัวอักษร 2 คำ


อธิบาย:

•‹T1qA‹rËöf#ùqÈ$>M©ÈñM£r°§°Ü]€¡3¸/©#bÍ'ò7DÉø½D—¹û©˜Òו # Compressed String

36B3ô                   # Decompress, split into 3s.
     v               }  # For each word...
      y™¬"ÿ is for ÿ"   # Take first letter of word, interpolate.
                      » # Print with newlines.

quiไม่ใช่คำภาษาอังกฤษ การค้นหาสิ่งนี้เผยให้เห็นเพียงคำภาษาละติน
mbomb007

@ mbomb007 Queฉันควรจะรู้ว่ามีคำศัพท์ทางกฎหมาย 3 ตัวอักษรสะกดผิด
Magic Octopus Urn

คำดี :) จะถูกแทนที่ด้วย ,
Emigna


2

Lithp , 136 125 117 ไบต์

((import lists)(each(split "niooaauusoioaiuaaoiineeaei" "")
#X,C::((print(chr(+ 65 C))"is for"(+(chr(+ 65 C))X "t"))))

(แยกเพื่อให้อ่านง่าย)

ลองออนไลน์!

นี่เป็นพอร์ตของคำตอบของงูใหญ่

  • บันทึก 11 ไบต์โดยใช้eachดัชนีของ
  • บันทึก 8 ไบต์โดยลบการโทรที่ไร้ประโยชน์ออก (scope #)

เอาท์พุท:

A is for Ant
B is for Bit
C is for Cot
D is for Dot
E is for Eat
F is for Fat
G is for Gut
H is for Hut
I is for Ist
J is for Jot
K is for Kit
L is for Lot
M is for Mat
N is for Nit
O is for Out
P is for Pat
Q is for Qat
R is for Rot
S is for Sit
T is for Tit
U is for Unt
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

2
ชื่อเยี่ยม! (ผมไม่ได้ thuffer จาก lithp ที่ doethe ภาษาที่มี thuch thpeech ithue แม้ว่า?)
โจนาธานอัลลัน

1
ขอขอบคุณ! Nope ภาษาใช้ได้ดีกับการออกเสียง ยิ่งไปกว่านั้นมันเป็น Lisp เวอร์ชันที่ถูกกลั่นแกล้ง ฉันเพิ่งพบว่า Lisp ยากเกินไปที่จะห่อหัวของฉันไปรอบ ๆ Lithp เป็นสิ่งที่ฉันใช้กับมันในแบบที่เหมาะสมกับฉัน ควรอ่านได้ง่ายกว่ารหัส Lisp ส่วนใหญ่
Andrakis

1

แบตช์ 250 ไบต์

@set s=ABCDEFGHIJKLMNOPQRSTUVWXYZ
@for %%w in (eon dellium zar jinn lbow hon nat our rk unta not lama nemonic domo uija sycho uay ye ee sunami rn ex rap enophobe ou ugzwang)do @call:c %%w
@exit/b
:c
@echo %s:~0,1% is for %s:~0,1%%1
@set s=%s:~1%

เนื่องจากฉันไม่เคยได้คะแนนที่ดีเลยฉันจึงไปหาคำตลกขบขันที่ฉันสามารถหาได้:

A is for Aeon
B is for Bdellium
C is for Czar
D is for Djinn
E is for Elbow
F is for Fhon
G is for Gnat
H is for Hour
I is for Irk
J is for Junta
K is for Knot
L is for Llama
M is for Mnemonic
N is for Ndomo
O is for Ouija
P is for Psycho
Q is for Quay
R is for Rye
S is for See
T is for Tsunami
U is for Urn
V is for Vex
W is for Wrap
X is for Xenophobe
Y is for You
Z is for Zugzwang

1

ซ้อนกัน , 72 ไบต์

มีสองสำหรับ 72 ไบต์!

65@i$'niooaauusoioaiuaaoiineeaei'{!i#::' is for '+\n+'t'+ +out i 1+@i}"!
{!n#::' is for '+\'niooaauusoioaiuaaoiineeaei'n 65-#+'t'+ +out}65 90 for

ลองออนไลน์! ใช้รูปแบบที่ยอดเยี่ยม (ก่อนที่คุณจะถาม++จะเป็นโทเค็นเดียวจึง+ +ใช้แทน)

ทั้งทำงานโดยการวนซ้ำจาก65ถึง90และรับลำดับอักขระที่ถูกต้อง หมายเหตุ:

  • #: เป็นชื่อแทน chr
  • # เป็นชื่อแทน get
  • {!...}เหมือนกับ{ n : ... }(แลมบ์ดาnที่มีพารามิเตอร์)

สำหรับ 73 ไบต์:

'niooaauusoioaiuaaoiineeaei'toarr{e i:65 i+#::' is for '+\e+'t'+ +out}map

1

Mathematica 93 Bytes

ToUpperCase@#<>" is for "<>Cases[WordList[],s_/; s~StringPart~1==#][[9]]&/@Alphabet[]//Column

อัตราผลตอบแทน

A is for abandoned
B is for babushka
C is for cabin
D is for dactylic
E is for eardrum
F is for fabricator
G is for gadabout
H is for habitation
I is for ice
J is for jackal
K is for kappa
L is for laboratory
M is for macaroni
N is for nagger
O is for oarsman
P is for pachysandra
Q is for quadratic
R is for rabidness
S is for saccharin
T is for tableland
U is for ulcer
V is for vacationist
W is for wadi
X is for xylene
Y is for yammer
Z is for zebra

1

Groovy ขนาด 72 ไบต์

c=65;"niooaauusoioaiuaaoiineeaei".any{printf"%c is for %<c%st\n",c++,it}

เอาท์พุต

A is for Ant
B is for Bit
C is for Cot
D is for Dot
E is for Eat
F is for Fat
G is for Gut
H is for Hut
I is for Ist
J is for Jot
K is for Kit
L is for Lot
M is for Mat
N is for Nit
O is for Out
P is for Pat
Q is for Qat
R is for Rot
S is for Sit
T is for Tit
U is for Unt
V is for Vet
W is for Wet
X is for Xat
Y is for Yet
Z is for Zit

1

Python 3, 145 137 135 ไบต์

ฉันเสียสละบางไบต์เพื่อหลอกเอาท์พุทแบบสุ่มด้วยการวิ่งแต่ละครั้ง ความคิดที่จะมองหาคำพิมพ์เล็กอย่างน้อย 3 ตัวอักษรในและจากนั้นเลือกหนึ่งจากรายการที่ใช้/usr/share/dict/wordsid([x])%99

import re
for x in range(65,91):print("%c is for "%x+re.findall("\n(%c.{3,})"%(x+32),open('/usr/share/dict/words').read())[id([x])%99])

การแก้ไข

  • ลบออกtitle()เป็นคำไม่จำเป็นต้องเป็นตัวพิมพ์ใหญ่
  • เปลี่ยน regex เป็น"\n(%c.{3,})"(+ 3 bytes) เพื่ออนุญาตการลบ,re.M(- 5 ไบต์)

ตัวอย่างผลลัพธ์:

A is for abacinate
B is for bacchantic
C is for caback
D is for dactylosternal
E is for eagless
F is for factful
G is for gabbroic
H is for hackneyed
I is for iambize
J is for jacutinga
K is for kadaya
L is for labra
M is for macaco
N is for nailwort
O is for oakenshaw
P is for pachysomia
Q is for quachil
R is for racer
S is for sabbath
T is for tabulable
U is for ubication
V is for vagabondism
W is for wabe
X is for xenobiosis
Y is for yacca
Z is for zeed

ไม่แน่ใจว่าใช้ได้ทั้งหมดหรือไม่ ตัวอย่างเช่นฉันไม่สามารถหาคำจำกัดความสำหรับQoheleการค้นหาพบว่ามันเป็นหนังสือหรือปริมาณของข้อความศักดิ์สิทธิ์
Andrakis

1
เพิ่งสังเกตเห็นว่า regex ของฉันไม่ตรงกันจนกว่าจะสิ้นสุดแต่ละคำ - จะแก้ไข
PidgeyUsedGust

ซ่อมมัน. ตอนนี้เพียงมองหาตัวพิมพ์เล็กให้เติมคำที่ไม่มีชื่อไว้ในนั้น
PidgeyUsedGust

1

GNU sed, 81 + 1 (แฟล็ก r) = 82 ไบต์

นี่คือการดำเนิน sed ของรายการคำจากโจนาธานอัลลันคำตอบ

s:$:AnBiCoDoEaFaGuHuIsJoKiLoMaNiOuPaQaRoSiTiUnVeWeXaYeZi:
s:(.).:\1 is for &t\n:g

คำยกเว้นจดหมายสิ้นสุดที่ใช้ร่วมกันtจะได้รับในรูปแบบตัดแบ่งบรรทัดที่ 1 แล้วพิมพ์ในรูปแบบที่ร้องขอตามบรรทัดที่ 2 บรรทัดใหม่ต่อท้ายจะปรากฏขึ้น

วิ่ง :

sed -rf alphabet_song.sed <<< ""

1

Java 7, 124 121 ไบต์

String c(){String r="";for(char c=65;c<91;r+=c+" is for "+c+"baaonaiineioaeaoaaeileeaoi".charAt(c++-65)+"t\n");return r;}

ตามคำตอบของ@JonathanAllenเนื่องจาก Java ไม่มีพจนานุกรมในตัวที่สวยงาม ;) ฉันพยายามหาตัวอักษรลงท้ายอีกตัวสำหรับทั้งตัวอักษร (เช่นsหรือnหรือy) หรือตัวอักษรกลาง (เช่นaหรือe) แต่ส่วนใหญ่หายไปเพียงหนึ่งหรือสองคำดังนั้นฉันจึงใช้tเช่นกัน คำพูดจะถูกเลือกด้วยตนเองจากwordhippo.com

Ungolfed:

ลองที่นี่

class M{
  static String c(){String r="";for(char c=65;c<91;r+=c+" is for "+c+"baaonaiineioaeaoaaeileeaoi".charAt(c++-65)+"t\n");return r;}

  public static void main(String[] a){
    System.out.println(c());
  }
}

เอาท์พุท:

A is for Abt
B is for Bat
C is for Cat
D is for Dot
E is for Ent
F is for Fat
G is for Git
H is for Hit
I is for Int
J is for Jet
K is for Kit
L is for Lot
M is for Mat
N is for Net
O is for Oat
P is for Pot
Q is for Qat
R is for Rat
S is for Set
T is for Tit
U is for Ult
V is for Vet
W is for Wet
X is for Xat
Y is for Yot
Z is for Zit

1
+1 +a+++สำหรับ ฉันชอบเขียนสิ่งเหล่านี้: P
Poke

1

PHP, 91 87 86 76 ไบต์

ตามรายการคำของ Jonathan Allan :

for($a=A;$i<26;)echo"$a is for ",$a++,neaoaaeiseioeuuoaaiineiaei[$i++],"t
";

รุ่นเก่ากว่า 86 ไบต์:

for($a=A;a&$c=reaoaaei0eioeuuoaaii0eiaei[$i++];)echo"$a is for ",$a++,$c?$c.t:nto,"
";

หรือ

for($a=A;$c=reaoaaeiHeioeuuoaaiiHeiaei[$i++];)echo"$a is for ",$a++,$c^x?$c.t:nto,"
";

-nrทำงานด้วย

เอาท์พุต

A is for Art
B is for Bet
C is for Cat
D is for Dot
E is for Eat
F is for Fat
G is for Get
H is for Hit
I is for Into
J is for Jet
K is for Kit
L is for Lot
M is for Met
N is for Nut
O is for Out
P is for Pot
Q is for Qat
R is for Rat
S is for Sit
T is for Tit
U is for Unto
V is for Vet
W is for Wit
X is for Xat
Y is for Yet
Z is for Zit

สำหรับคำแปลก ๆ ดูคำตอบของอิสมาเอล

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.