ทำไฟฉายตัวอักษร!


66

แรงบันดาลใจจากข้อบกพร่องในการแก้ไขปัญหานี้ความท้าทายของคุณคือการสร้างข้อความที่แน่นอนนี้:

                         ZYXWVUTSRQPONMLKJIHGFEDCBA
                        YXWVUTSRQPONMLKJIHGFEDCBA
                       XWVUTSRQPONMLKJIHGFEDCBA
                      WVUTSRQPONMLKJIHGFEDCBA
                     VUTSRQPONMLKJIHGFEDCBA
                    UTSRQPONMLKJIHGFEDCBA
                   TSRQPONMLKJIHGFEDCBA
                  SRQPONMLKJIHGFEDCBA
                 RQPONMLKJIHGFEDCBA
                QPONMLKJIHGFEDCBA
               PONMLKJIHGFEDCBA
              ONMLKJIHGFEDCBA
             NMLKJIHGFEDCBA
            MLKJIHGFEDCBA
           LKJIHGFEDCBA
          KJIHGFEDCBA
         JIHGFEDCBA
        IHGFEDCBA
       HGFEDCBA
      GFEDCBA
     FEDCBA
    EDCBA
   DCBA
  CBA
 BA
A
  • บรรทัดแรกจะมี 25 ช่องว่างจากนั้นตัวอักษรย้อนกลับเริ่มต้นจากตัวอักษร 26 ( ZYXWVUTSRQPONMLKJIHGFEDCBA) แล้วขึ้นบรรทัดใหม่
  • บรรทัดที่สองจะมี 24 ช่องว่างจากนั้นตัวอักษรย้อนกลับเริ่มต้นจากตัวอักษรที่ 25 ( YXWVUTSRQPONMLKJIHGFEDCBA) แล้วขึ้นบรรทัดใหม่
  • ...
  • บรรทัดสุดท้าย (26) จะไม่มีช่องว่างจากนั้นตัวอักษรย้อนกลับเริ่มต้นจากตัวอักษรที่ 1 ( A) แล้วขึ้นบรรทัดใหม่

กฎเพิ่มเติม:

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

เช่นเดียวกับการส่งที่สั้นที่สุดชนะ โชคดี!

ลีดเดอร์บอร์ด:


3
สำหรับฉันดูเหมือนว่าสัญญาณแสงจากสัญญาณค้างคาว
กอตติเนต์

4
อย่างใกล้ชิดที่เกี่ยวข้อง
Mr. Xcoder

แต่ละบรรทัดสามารถมีพื้นที่พิเศษด้านหน้าหรือไม่
HyperNeutrino

3
แต่ละบรรทัดสามารถมีช่องว่างต่อท้ายหลังจากอักษรตัวสุดท้ายได้หรือไม่
ไมล์

1
@ ไฟล์ใช่มันไม่เป็นไร
MD XF

คำตอบ:


19

05AB1E , 7 ไบต์

รหัส:

₂žp.s1Λ

ใช้การเข้ารหัส05AB1E ลองออนไลน์!

คำอธิบาย

 žp.s      # Get the suffixes of ZYX...CBA
      Λ    # Using the canvas mode, print the
₂          # first 26 elements of the array
     1     # into the upper-right direction

2
@MDXF IMO นั่นเป็นกฎที่โง่จริงๆ
DJMcMayhem

3
อืม ... ฉันเดาว่าฉันจะลบกฎออกไป สถานะเสร็จสมบูรณ์
MD XF

2
ฉันอาจเสนอเอกสารการประชาสัมพันธ์ว่าเมื่อฉันหาเวลา ดูเหมือนว่าจะเป็นวิธีที่ดีในการเรียนรู้ไพ ธ อนเล็ก ๆ น้อย ๆ จากโค้ดที่อ่านง่ายเขียนได้ดี
scottinet

6
ทำไมžpเมื่อAuมีทอง? เนื้อเยื่อ BADUM
Magic Octopus Urn

5
ใช้ 05AB1E สร้างไฟล์ที่บันทึกคุณสมบัติทั้งหมดของมันโดยย่อรหัสที่ชนะ: P
Christian

22

R , 67 55 ไบต์

for(i in 26:1)cat(rep(" ",i-1),LETTERS[i:1],"
",sep="")

ลองออนไลน์!


4
R กำลังเต้น Python บนการท้าทายสายอักขระใช่หรือไม่ ดี +1 สำหรับตัวอักษร
อาชญากรอาชญากร

1
@CriminallyVulgar มันเป็นความท้าทายที่แปลกมาก Haskell กำลังตีกันทั้ง PHP และ R ซึ่งกำลังเต้น Python ... อย่างน้อย Perl ก็อยู่เหนือสิ่งอื่นใดอย่างที่คุณคาดหวัง
CR Drost

-2 ไบต์ถ้าคุณเปลี่ยนไปsep sฟังก์ชั่นจะเติมข้อความอัตโนมัติที่มีชื่อให้สมบูรณ์หากไม่มีการชนกัน
Punintended

1
@Punintended ที่จะไม่ทำงานเพราะมีการ...โต้แย้ง ข้อโต้แย้งที่มาก่อน...(โดยทั่วไป) จะได้รับการจับคู่บางส่วนและหลังจากนั้น ฉันเชื่อว่ามีข้อยกเว้นเล็กน้อย แต่catไม่ใช่หนึ่งในนั้น
Giuseppe

@Giuseppe ฉันไม่เห็น...
MilkyWay90


15

V , 13 , 11 ไบต์

¬ZAòY>HGpxl

ลองออนไลน์!

hexdump:

00000000: ac5a 41f2 593e 4847 7078 6c              .ZA.Y>HGpxl

เขียนจากโทรศัพท์ของฉัน: P

¬ZA         " Insert the alphabet backwards
   ò        " Recursively:
    Y       "   Yank this current line
     >H     "   Add one space to every line
       G    "   Move to the last line in the buffer
        p   "   Paste the line we yanked
         x  "   Delete one character
          l "   Move one character to the right, which will throw an error on 
            "   the last time through, breaking the loop

1
ฉันทำสิ่งเหล่านี้ทางโทรศัพท์ของฉันเช่นกัน +1
Stan Strum

12

PowerShellขนาด 42 ไบต์

25..0|%{' '*$_+-join[char[]]((65+$_)..65)}

ลองออนไลน์!

คำอธิบาย:

25..0|%{                                 } # Loop from 25 to 0
                             (65+$_)..65   # Construct a range of the specific ASCII codes
                    [char[]](           )  # Cast that as a character array
               -join                       # that has been joined together into a string
        ' '*$_+                            # Prepended with the correct amount of spaces


10

/// , 105 97 ไบต์

/:/\\\\*//#/:Z:Y:X:W:V:U:T:S:R:Q:P:O:N:M:L:K:J:I:H:G:F:E:D:C:B:A//\\*/\/\/_____#
\/ //_/     //*#

ลองออนไลน์!

คำอธิบาย

/// เท่านั้นที่รู้คำสั่งหนึ่ง/<pattern>/<substitution>/<text>แทนที่เกิดขึ้นทั้งหมด<pattern>ในด้วย<text> <substitution>นอกจากนี้\ยังสามารถใช้เพื่อหลบหนีตัวละคร

รหัสย่อเพื่อความเรียบง่าย:

/:/\\\\*//#/:E:D:C:B:A//\\*/\/\/__#
\/ //_/  //*#

คำสั่งแรก/:/\\\\*/แทนที่:ด้วย\\*ในรหัสต่อมา สิ่งนี้ให้:

/#/\\*E\\*D\\*C\\*B\\*A//\\*/\/\/__#
\/ //_/  //*#

จากนั้น/#/\\*E\\*D\\*C\\*B\\*A/แทนที่#ด้วย\*E\*D\*C\*B\*A:

/\\*/\/\/__\*E\*D\*C\*B\*A
\/ //_/  //*\*E\*D\*C\*B\*A

จากนั้น/\\*/\/\/__\*E\*D\*C\*B\*A<newline>\/ /แทนที่\*ด้วย//__*E*D*C*B*A<newline>/:

/_/  //*//__*E*D*C*B*A
/ E//__*E*D*C*B*A
/ D//__*E*D*C*B*A
/ C//__*E*D*C*B*A
/ B//__*E*D*C*B*A
/ A

แจ้งให้ทราบ\*ล่วงหน้า: ฉันต้องใช้เพื่อทดแทน ตั้งแต่ยังเป็นส่วนหนึ่งของการทดแทนก็จะสร้างห่วงอนันต์ถ้าฉันแทนเท่านั้น**

จากนั้นคำสั่ง/_/ /จะแทนที่_ด้วยช่องว่างและ/*//ลบทั้งหมด*:

EDCBA
/ E//    EDCBA
/ D//    EDCBA
/ C//    EDCBA
/ B//    EDCBA
/ A

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

EDCBA
/ E//    EDCBA
/ D//    EDCBA
/ C//    EDCBA
/ B//    EDCBA
/ 

จากนั้นคำสั่ง/ E//จะถูกลบ<space>Eดังนั้นสิ่งนี้จะทิ้งโค้ดไว้

    EDCBA
   DCBA
/ D//   DCBA
/ C//   DCBA
/ B//   DCBA
/ 

การ/ D//ลบที่คล้ายกัน<space>D:

    EDCBA
   DCBA
  CBA
/ C//  CBA
/ B//  CBA
/ 

/ C//:

    EDCBA
   DCBA
  CBA
 BA
/ B// BA
/ 

/ B//:

    EDCBA
   DCBA
  CBA
 BA
A
/ 

และคำสั่งสุดท้ายไม่สมบูรณ์จึงไม่ทำอะไรเลย:

    EDCBA
   DCBA
  CBA
 BA
A

ความยาวเท่ากันกับคำตอบ C # และ brainfuck: D
Conor O'Brien

9

Haskell, 53 52 ไบต์

f(a:b)=(b>>" ")++a:b++'\n':f b
f x=x
f['Z','Y'..'A']

ลองออนไลน์!

มันทำงานอย่างไร

f['Z','Y'..'A']        -- call f with the full backwards alphabet

f(a:b)=                -- let `a` be the first char and `b` the rest. Return
   (b>>" ") ++         -- replace each char in b with a space, followed by
   a:b ++              -- the input string, followed by
   '\n' :              -- a newline, followed by
   f b                 -- a recursive call of `f` with `b`
f x=x                  -- stop on an empty input string

ทำไมไม่f['Z'..'A']ทำงาน
Conor O'Brien

1
@ ConorO'Brien: [a..b]เริ่มต้นด้วยaและเก็บรวบรวมสืบทอดทั้งหมด ( +1สำหรับจำนวนเต็มต่อไป ascii-ถ่านสำหรับตัวอักษร ฯลฯ ) bขึ้นไป หากa > bนี่เป็นรายการที่ว่างเปล่า อย่างไรก็ตามคุณสามารถระบุค่าที่สอง (ซึ่งอาจเล็กกว่า) ซึ่งจะคำนวณ / เพิ่ม / ลดได้ [1,3..8]-> [1,3,5,7], [15,10..0]-> [15,10,5,0]หรือ['Z','Y'..'A']ตัวอักษรตัวพิมพ์ใหญ่ที่อยู่ด้านหลัง
nimi

อ่าฉันเห็นแล้ว ขอบคุณ!
Conor O'Brien

8

Python 2 , 66 64

i=26
while i:i-=1;print' '*i+'ZYXWVUTSRQPONMLKJIHGFEDCBA'[25-i:]

ลองออนไลน์!


1
ยินดีต้อนรับสู่ Programming Puzzles & Code Golf - คำตอบแรกที่ดี!
MD XF

2
ขอบคุณ! คิดว่าฉันจะลองแทนการซุ่มซ่อน
Artemis_134

2
คุณสามารถลบช่องว่างระหว่างprintและ'สำหรับ 65 ไบต์
Mr. Xcoder

ฉันส่งคำตอบของคุณไปยังPyth
Stan Strum

7

JavaScript (ES6), 83 77 76 ไบต์

f=(n=0,p='')=>n<26?f(++n,p+' ')+p+`ZYXWVUTSRQPONMLKJIHGFEDCBA
`.slice(~n):''

o.innerText = f()
<pre id=o>


ฉันอยากจะแนะนำให้คุณปรับปรุง แต่แล้วฉันก็ตระหนักว่าวิธีการของเรานั้นแตกต่างกันมาก หวังว่าคุณจะไม่รังเกียจ

@ThePirateBay ไม่มีปัญหา!
Arnauld

7

เยลลี่ 12 ไบต์

ØAµ⁶ṁḊ;ṚµƤṚY

ลองออนไลน์!

ØAµ⁶ṁḊ;ṚµƤṚY  Main Link
ØA            "ABC...XYZ"
         Ƥ    For each prefix,
  µ⁶ṁḊ;Ṛµ     Monadic Link
   ⁶          ' '
    ṁ         (with automatic repetition) molded to the shape of
     Ḋ        All but the first letter of the input (repeat - 1)
      ;       With the input          appended to it
       Ṛ                     reversed
           Y  Join on newlines

-3 ไบท์ขอบคุณไมล์



@LeakyNun โอ้เยี่ยมมากขอบคุณมาก!
HyperNeutrino

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

@LeakyNun จริง ๆ แล้วน่าเสียดายที่ทำให้มันไม่ถูกต้องเพราะไม่มีช่องว่างเพิ่มเติม (มันต้องใช้เวลา 2 ไบต์ในการแก้ไข)
HyperNeutrino

7

brainfuck , 105 ไบต์

++++++++[>+>+++++++++++>++++>+++<<<<-]>++>++>>++[[->+>+<<]>-[-<<.>>]>[-<<<<.->>>+>]<-[-<+<<+>>>]<<<<.>>>]

ลองออนไลน์!

ย่อและจัดรูปแบบ:

++++++++[>+>+++
++++++++>++++>+
++<<<<-]>++>++>
>++[[->+>+<<]>-
[-<<.>>]>[-<<<<
.->>>+>]<-[-<+<
<+>>>]<<<<.>>>]

รุ่นที่อ่านได้:

[
  pre-initialize the tape with the values 10 90 32 >26<
  C_NEWLINE: 10
  V_ALPHA: 90
  C_SPACE: 32
  V_COUNTER: 26

AS:

  10 = 8 *  1 + 2
  90 = 8 * 11 + 2
  32 = 8 *  4 + 0
  26 = 8 *  3 + 2
]

8 ++++++++ [
  *  1 >+
  * 11 >+++++++++++
  *  4 >++++
  *  3 >+++
<<<<-]
PLUS 2 >++
PLUS 2 >++
PLUS 0 >
PLUS 2 >++

UNTIL V_COUNTER == 0 [
  COPY V_COUNTER to RIGHT and RIGHT_RIGHT
  [->+>+<<]
  TAPE: 10 V_ALPHA 32 >0< V_COUNTER_R V_COUNTER_RR
  V_COUNTER_R SUB 1 TIMES: >-[-
     PRINT C_SPACE <<.
  >>]
  TAPE: 10 V_ALPHA 32 0 >0< V_COUNTER_RR
  V_COUNTER_RR TIMES: >[-
    PRINT V_ALPHA <<<<.
    DECREMENT V_ALPHA -
    INCREMENT V_COUNTER_R >>>+
  >]
  TAPE: 10 V_ALPHA 32 0 V_COUNTER_R(26) >0<
  V_COUNTER_R SUB 1 TIMES: <-[-
    INCREMENT V_COUNTER <+
    INCREMENT V_ALPHA <<+
  >>>]
  PRINT C_NEWLINE <<<<.
>>>]


6

บทกวี 601 ไบต์

one night i camped a bit
throughout all the forest now
the sweet sights
i saw giant things
i saw little small things
here i am
seated around all my trees i saw
i sleep
i sle-e-p
sleep in a cabin
i am sleep-y
i sleep a bit
i awaken in bed
i stand
i walk
i am ready
i saw a vision of a dragon
i am fooled
i know i am
should i f-ight
i f-light
i did f-light
i did a flight
go away,i do imply
i*m afraid
i run
i leave
i flee
i am timid
i*m just a person,not toughie-tough-guy
no,never
i*m waste
i am stupid
a quitter i was
i am stupid
i*m turning around
i do not appreciate camping
i cry
i am crying
no
no

บทกวีเป็น esolang ฉันสร้างขึ้นในปี 2018 สำหรับโครงการในชั้นเรียนและมันเป็นอนุพันธ์ brainfuck ซึ่งความยาวของคำที่สอดคล้องกับคำสั่ง brainfuck (และคำสั่ง +, -,> และ <แต่ละคนมีอาร์กิวเมนต์ 1 หลัก)

ความจริงที่ว่ามีเพียงความยาวคำเท่านั้นที่กำหนดคำสั่งหมายความว่าในทางเทคนิคฉันสามารถสร้างโปรแกรมที่ประกอบด้วยคำที่ไม่ใช่คำทั้งหมด (เช่นตัวอักษร X หลาย ๆ ครั้งตามที่ต้องการโดยมีช่องว่างระหว่างคำ) แต่ฉันต้องการทำให้น่าสนใจ บทกวีฟรีกลอนออกมาจากมันในขณะที่ไม่ได้เพิ่มไบต์ที่ไม่จำเป็นใด ๆ

หากคุณต้องการลองออนไลน์ (ซึ่งเป็นครึ่งหนึ่งของโครงงานในตอนแรก) ลองดูล่ามออนไลน์ของฉัน !


ทำไมสิ่งนี้จึงไม่ใช่การแข่งขัน
pppery

ภาษาถูกสร้างขึ้นหลังจากการท้าทาย
JosiahRyanW


อืมฉันคิดว่านั่นเป็นแรงบันดาลใจให้ฉันมากขึ้นในการใช้บทกวีเป็นภาษาการเขียนโปรแกรม! หึ
JosiahRyanW

5

05AB1E , 10 ไบต์

žpDvÐg<ú,¦

ลองออนไลน์!

คำอธิบาย:

žpDvÐg<ú,¦
žp           Push the uppercased alphabet, reversed
  D          Duplicate
   v         For each letter (we just want to loop 26 times, so we use the 
                already pushed alphabet for that purpose)
    Ð        Triplicate
     g<      Length of the string - 1
       ú     Add that number of spaces at the beginning of the string
        ,    Print with newline
         ¦   Remove the 1st element of the remaining copy of the string

5

Perl 6 , 37 ไบต์

บันทึกแล้ว 9 ไบต์ขอบคุณ @Massa

say " "x$_,chrs $_+65...65 for 25...0

ลองออนไลน์!

คำอธิบาย: 25...0มีช่วงตั้งแต่ 25 ถึง 0 (ตามที่คาดไว้) เราวนซ้ำในช่วงนั้นโดยบอกว่า (= การพิมพ์ด้วยการขึ้นบรรทัดใหม่) ว่ามีช่องว่างมากมายและสตริงอักขระที่มีรหัส ASCII ( chrs) จาก 65 + หมายเลขนั้น ( $_+65...65)


1
25...0 เป็นวิธีที่สั้นกว่า :-)
Massa

ลองsay " "x$_,chrs $_+65...65 for 25...0:-)
Massa

ขอบคุณมาก! ฉันไม่เคยรู้เรื่องนี้เลย! และรูปแบบย่อยก็ดีขึ้นด้วย (แย่มากที่ฉันทำอันนี้จากส่วนบนของหัว) (นี่คือเหตุผลที่ผมชอบที่จะใช้ Perl 6 สำหรับ codegolf ฉันมักจะค้นพบสิ่งใหม่.)
มิลลี่ย์

4

ถ่าน , 19 11 ไบต์

-8 ไบต์ขอบคุณ ASCII-only

F²⁶«P⮌…α⊕ι↗

ลองออนไลน์! ลิงก์คือเวอร์ชัน verbose


บางทีนี่อาจ? tio.run/##S85ILErOT8z5/…
เฉพาะ ASCII

เดี๋ยวก่อนไม่มีที่ว่างมีผู้นำ
เฉพาะ ASCII เท่านั้น

ลูกชายของ ... ฉันต้องมองผ่านทุกคำสั่งและผู้ประกอบการถ่านมี > _> ขอบคุณ!
สิ้นเชิงมนุษย์


1
@ ASCII เท่านั้นCycleChop... แต่คุณลืมIncrement(หรือสิ่งที่เรียกว่า)
Erik the Outgolfer

4

Perl 5 , 36 ไบต์

35 ไบต์รหัสเมือง + 1 -pสำหรับ

$\=$"x$-++.($a=$_.$a).$/.$\for A..Z

หมายเหตุ : TIO ไม่สนับสนุนอินพุตว่างดังนั้นจึงมีการขึ้นบรรทัดใหม่ซึ่งจะส่งผลให้มีการขึ้นบรรทัดใหม่ที่ไม่เกี่ยวข้อง แต่เมื่อทำงานที่บรรทัดคำสั่งที่มีอินพุตว่างนี่จะไม่ปรากฏขึ้น

ลองออนไลน์!



4

Cubix , 43 46 bytes

$/\;u:\s/':(!$u;:'@^!@Wu;oSU;o+<u(;;oN;(!|

ลองออนไลน์!

Cubified

      $ / \
      ; u :
      \ s /
'  : ( ! $ u ; : ' @ ^
! @ W u ; o S U ; o + <
u ( ; ; o N ; ( ! | . .
      . . .
      . . .
      . . .

ดูมันทำงาน

มีการจัดการที่จะโกนอีกไม่กี่นี้ แต่มันยากกว่าที่ฉันคิด มีตัวละครทดแทนหลังจากใบเสนอราคาครั้งแรกเพื่อให้ฉัน 26

  • '<sub> กด 26 ลงบนสแต็กเป็นหมายเลขฐาน
  • :(! ฐานที่ซ้ำกันเป็นตัวนับการลดลงทดสอบความจริง
  • uข้าม$คำสั่งและกลับไปทางขวา
    • So;u กด 32, เอาท์พุทเป็นตัวละคร, ป๊อป 32 และเลี้ยวขวาเข้าสู่การลดลง
  • $เมื่อข้ามเท็จuคำสั่งต่อไป
  • ;:'@^ ป๊อปทำซ้ำหมายเลขฐานกด 64 ลงบนสแต็กและเปลี่ยนเส้นทางไปยังเส้นทางทรมาน
  • $\s/:\/u;$นี่คือลำดับของขั้นตอนที่อยู่ด้านบนสุด มันลดลงเพื่อสลับตัวนับกับ 64 สิ้นสุดด้วยการข้ามการเปลี่ยนเส้นทางที่วางไว้ที่นี่
  • <+o;U เปลี่ยนเส้นทางเพื่อเพิ่มตัวละครออกป๊อปกลับซ้าย
  • (!การลดลงทดสอบความจริง หากความจริงเริ่มต้นบนเส้นทางที่กระทบกลับรถและกลับไปที่การเปลี่ยนเส้นทาง
  • |(;No บน false, reflect, test redundant, decrementant redundant, pop, push 10 และอักขระเอาต์พุต
  • ;;(u!@Wผุดขึ้นไปที่หมายเลขฐานลดลงเลี้ยวขวาเข้าสู่การทดสอบความจริงหยุดถ้าเท็จอย่างอื่นเปลี่ยนช่องทางที่ซ้ำกันในการเริ่มต้น ล้างและทำซ้ำ

4

Python ขนาด 83 ไบต์

[print(' '*i+''.join([chr(64+i)for i in range(i+1,0,-1)]))for i in range(25,-1,-1)]

คำตอบแรกของฉันเกี่ยวกับ codegolf :)


1
ยินดีต้อนรับสู่ PPCG ล่าช้า! คำตอบที่ดี!
Conor O'Brien



3

JavaScript, 75 74 ไบต์

บันทึก 1 ไบต์ต้องขอบคุณRick Hitchcock

f=(a=65,b='',c)=>a>90?'':f(a+1,b+' ',c=String.fromCharCode(a)+[c])+`
`+b+c

ลองออนไลน์!


บันทึกไบต์โดยเริ่มต้นb( b='') จากนั้นนำbออกจากวงเล็บเหลี่ยม
Rick Hitchcock

@RickHitchcock ขอบคุณ

3

Perl 5 , 49 ไบต์

$_=$"x26 .join'',reverse A..Z,Z;say while s/ \S//

ลองออนไลน์!


ดูเหมือนว่าคุณจะหายไปก่อนAแต่ดูเหมือนว่าสามารถแก้ไขได้โดยเปลี่ยน$"x25เป็น$"x26!
Dom Hastings

เมื่อฉันเพิ่มพิเศษZฉันลืมที่จะบัญชีสำหรับที่
Xcali

3

Pyke 8 ไบต์

G_.<XFo}h-

ลองที่นี่!

           -  o = 0
G_         -    reversed(alphabet)
  .<       -   suffixes(^)
    XF     -  for i in ^:
      o    -      o++
       }   -     ^ * 2
        h  -    ^ + 1
         - -   i.lpad(" ", ^)
           - for i in reversed(^):
           -  print i

ฉันสามารถเห็นภาษาที่ถูกต้องทำสิ่งนี้ใน 6 ไบต์ถ้าพวกเขามี builtin สำหรับprepend n spaces to stringเช่นเดียวกับสิ่งที่ Pyke ทำ


3

PHP ( 63 58 55 ไบต์)

นี่อาจเป็นมุมแปลก ๆ ที่ฉันโปรดปรานของ PHP ซึ่งเป็นมุมที่สืบทอดมาจาก Perl:

for($c=A;$c!=AA;$q="$s$z 
$q",$s.=" ")$z=$c++.$z;echo$q;

ผลลัพธ์นี้ขึ้นบรรทัดใหม่ตามที่ได้รับอนุญาตอย่างชัดเจน สิ่งนี้สามารถถูกเรียกใช้php -rเพื่อบันทึกการเปิด<?phpจำเป็นต้องใส่สิ่งนี้ลงในไฟล์

คำอธิบาย: เมื่อตัวแปรที่มีสตริง'A'จะเพิ่มขึ้นใน PHP มันจะกลายเป็น'B'แล้ว'C'และอื่น ๆ ขึ้นจนกลายเป็น'Z' 'AA'มีหลักก่อนที่จะไม่มี'A'การเริ่มต้นด้วยในพีชคณิตบ้าระห่ำนี้และผู้ประกอบการลดลงไม่ยกเลิกมันดังนั้นเราประหยัดขึ้นเรื่อย ๆ ย้อนกลับไปยังตัวอักษร$z(ซึ่งค่าเริ่มต้นNULLซึ่งเมื่อได้รับการตัดแบ่งกับสตริงพฤติกรรมเช่นสตริงที่ว่างเปล่า - The เกิดขึ้นกับ$sและ$q) ช่องว่างสะสมใน$sและสตริงทั้งหมดจะถูกสะสมย้อนหลังในตัวแปร$qซึ่งหมายความว่าเราต้องสะท้อนมันในตอนท้าย

ขอขอบคุณที่ติตัส-rสำหรับการเล่นกอล์ฟปิดวงเล็บปีกกาของฉันและบอกฉันว่าฉันไม่ต้องการที่จะใช้บทลงโทษสำหรับธงอินไลน์เช่นการประเมินผล


1
นั่นคือ 57 ไบต์ถ้าคุณใช้ linux linebreak -rฟรี สั้นลงสองไบต์:for($c=A;$c!=AA;$q="$s$z\n$q",$s.=" ")$z=$c++.$z;echo$q;
ติตัส

@Tios ขอบคุณให้ความรุ่งโรจน์ในคำตอบ
CR Drost

นาโนเมตร ทราบเพียงว่า-Rและ-Fมีไม่ฟรี ดูcodegolf.meta.stackexchange.com/questions/2424/ …
ติตัส

$c<AAผมเชื่อว่าคุณสามารถบันทึกไบต์ถ้าคุณใช้
Ismael Miguel

1
@IsmaelMiguel ขอโทษฉันก็กระชับเกินไป ฉันคิดว่าเมื่อฉันเขียนว่า "อาจมีวิธีสับเปลี่ยนสิ่งต่าง ๆ โดยไม่ได้รับไบต์เพื่อให้กรณี A เกิดขึ้นก่อนจากนั้นเราสามารถตรวจจับ AA กับ B แต่ฉันไม่คิดว่าฉันฉลาดพอที่จะดู ." ฉันไม่ได้ตั้งใจจะพลิกผันและฉันจะพยายามระวังสิ่งนั้นในอนาคต
CR Drost

3

แค่สงสัยรุ่นบีบอัดนานเท่าไหร่?
caird coinheringaahing

@cairdcoinheringaahing TL; DR ทางยาวเกินไป การบีบอัด SOGLs ครับที่ (และโดยเฉพาะที่ทำไม่ได้สำหรับ) สิ่งซ้ำ ๆ เป็นการยากที่จะบอกว่าการบีบอัดไม่อัตโนมัติ (การดำเนินการอัตโนมัติทำให้ต้องใช้701 choose xจำนวนเต็ม x ใด ๆ ) แต่ความพยายามคร่าวๆคือ 450 ไบต์: P
dzaima


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