โครโมโซมตัวอักษร


11

บทนำ

ความท้าทายของตัวอักษรอยู่ใน DNA ของเราดังนั้นมาแสดงกัน

ท้าทาย

พิมพ์ข้อความต่อไปนี้อย่างแน่นอน:

AaBbCc        cCbBaA
BbCcDd        dDcCbB
EeFfGg        gGfFeE
HhIiJj        jJiIhH
KkLlMm        mMlLkK
NnOoPp        pPoOnN
QqRrSs        sSrRqQ
TtUuVv        vVuUtT
   WwXx      xXwW
       Yy  yY
         ZZ
         zz
         ZZ
       Yy  yY
   WwXx      xXwW
TtUuVv        vVuUtT
QqRrSs        sSrRqQ
NnOoPp        pPoOnN
KkLlMm        mMlLkK
HhIiJj        jJiIhH
EeFfGg        gGfFeE
BbCcDd        dDcCbB
AaBbCc        cCbBaA

กฎระเบียบ

  • คุณจะต้องตรงกับกรณีของจดหมายแต่ละฉบับ
  • อนุญาตการต่อท้ายและ / หรือขึ้นบรรทัดใหม่และ / หรือช่องว่าง

การชนะ

รหัสที่สั้นที่สุดในหน่วยไบต์ชนะ


14
มันไม่สมเหตุสมผลนักที่สองบรรทัดแรกทั้งสองมี B และ C เมื่อบรรทัดอื่นทั้งหมด (แถบส่วนตรงกลาง) มีตัวอักษรที่ไม่ซ้ำกัน
ทำให้เสียชีวิต

1
@Falize นั่นคือการทำให้ความท้าทายมีความน่าสนใจขึ้นอีกเล็กน้อย
Beta Decay

5
โดยส่วนตัวฉันจะโต้แย้งว่ามันตรงกันข้าม
ทำให้เสียชีวิต

2
ฉันเชื่อว่ามีข้อผิดพลาดในบรรทัดที่ 9 ควรเป็น "WwXx xX wW " ไม่ใช่ "WwXx xXWw" ใช่หรือไม่
GOTO 0

2
@BetaDecay Fatalize ถูกต้องที่จะทำให้ความท้าทายที่น่าเบื่อมากขึ้น
moonheart08

คำตอบ:


18

เป็นกลุ่ม (ไม่มีเครื่องมือภายนอก), 106 ไบต์

บรรทัดใหม่เพื่อความชัดเจน:

:h<_↵↵↵YZZPllabc♥
:s/./\u&&/g↵
qa6li↵♥q7@a3i ♥fY
i↵    →→↵  →↵→ð♥
ʌHA ♥9l
qbmaʌ99jY$P`ah@bq@b
y11G:g//m0↵P

นี่คือ Return, Right, is Escape, ʌCTRL-V และðDelete

แอนิเมชั่นกอล์ฟ


3

Python 2, 230 ไบต์

s='';m=['AaBbCc','BbCcDd','EeFfGg','HhIiJj','KkLlMm','NnOoPp','QqRrSs','TtUuVv','   WwXx',' '*7+'Yy',' '*9+'Z'];
p=lambda l:l.ljust(10)+l[::-1].rjust(10)+'\n';
for l in m:s+=p(l);
s+=' '*9+'zz\n';
for l in m[::-1]:s+=p(l)
print s

1
1) ลบเครื่องหมายอัฒภาคออกจากบรรทัดที่สองสามและสี่ 2) ลบบรรทัดใหม่ในตอนท้ายของบรรทัดแรก 3) สนุกกับคำตอบของคุณสั้นกว่า daHugLenny ของ 4) เนื่องจากยังไม่มีใครบอกว่ายินดีต้อนรับสู่ PPCG!
Erik the Outgolfer

3

PowerShell v2 +, 175 169 163 154 ไบต์

($x=(-join(65..67+66..86|%{$_;32+$_}|%{[char]$_})-split'(.{6})'-ne'')+'   WwXx'+'       Yy'+(' '*9+'Z')|% *ht 10|%{$_+-join$_[9..0]})
' '*9+'zz'
$x[10..0]

ลองออนไลน์!

ละเมิดข้อเท็จจริงที่ว่าค่าเริ่มต้นWrite-Outputเมื่อสิ้นสุดการดำเนินการแทรกบรรทัดใหม่ระหว่างองค์ประกอบ

บรรทัดแรกสร้างสาขา เราวนรอบสองช่วงที่สอดคล้องกับค่า ASCII สำหรับตัวพิมพ์ใหญ่แต่ละการวนซ้ำจะส่งออกcharอาร์เรย์ของตัวอักษรนั้นและตัวอักษรนั้น+32(ซึ่งเป็นจุด ASCII ตัวพิมพ์เล็ก) นั่นคือการ-joinรวมเข้าด้วยกันเป็นสตริงยาว ๆ จากนั้น-splitทุก ๆ หกอิลิเมนต์ (ห่อหุ้มใน parens เพื่อให้มันถูกเก็บรักษาไว้) ตามด้วย a -ne''เพื่อดึงอิลิเมนต์ว่างออกจากการแยก

สตริงเหล่านี้ในอาร์เรย์รับอาร์เรย์เรียงต่อกันเพื่อเพิ่มในWwXx, YyและZองค์ประกอบแล้ว PadRig ht 10ที่จะทำให้พวกเขาทั้งหมดมีความกว้างที่เหมาะสม ณ จุดนี้เรามีอาร์เรย์ของสตริงดังต่อไปนี้ (หนึ่งองค์ประกอบต่อบรรทัด)

AaBbCc    
BbCcDd    
EeFfGg    
HhIiJj    
KkLlMm    
NnOoPp    
QqRrSs    
TtUuVv    
   WwXx   
       Yy 
         Z

นั่นมากมายทั้งประปาห่วงอีกครั้งเพื่อสร้างสตริงมิเรอร์ด้วยและอาเรย์ย้อนกลับ-join[9..0]

AaBbCc        cCbBaA
BbCcDd        dDcCbB
EeFfGg        gGfFeE
HhIiJj        jJiIhH
KkLlMm        mMlLkK
NnOoPp        pPoOnN
QqRrSs        sSrRqQ
TtUuVv        vVuUtT
   WwXx      xXwW   
       Yy  yY       
         ZZ         

เราบันทึกสตริงผลลัพธ์ลงใน$xและล้อมรอบใน parens เพื่อวางสำเนาบนไพพ์ไลน์

บรรทัดถัดไปวางzzสตริงบนไพพ์ไลน์จากนั้น$xอาร์เรย์ในลำดับย้อนกลับ สิ่งเหล่านี้จะถูกทิ้งไว้บนไปป์ไลน์และเอาท์พุทเป็นนัย

PS C:\Tools\Scripts\golfing> .\alphabet-chromosome.ps1
AaBbCc        cCbBaA
BbCcDd        dDcCbB
EeFfGg        gGfFeE
HhIiJj        jJiIhH
KkLlMm        mMlLkK
NnOoPp        pPoOnN
QqRrSs        sSrRqQ
TtUuVv        vVuUtT
   WwXx      xXwW   
       Yy  yY       
         ZZ
         zz
         ZZ
       Yy  yY       
   WwXx      xXwW   
TtUuVv        vVuUtT
QqRrSs        sSrRqQ
NnOoPp        pPoOnN
KkLlMm        mMlLkK
HhIiJj        jJiIhH
EeFfGg        gGfFeE
BbCcDd        dDcCbB
AaBbCc        cCbBaA

-9 bytes เพื่อ mazzy


154 ไบต์ - '(.{6})'แทน(......)และRightPadเว้นวรรคแทน
mazzy

3

Python 2 , 156 ไบต์

r=('AaBbCc.BbCcDd.EeFfGg.HhIiJj.KkLlMm.NnOoPp.QqRrSs.TtUuVv.   WwXx.%8cy.%10c.%10c'%(89,90,'z')).split('.')
for k in r+r[-2::-1]:s='%-10s'%k;print s+s[::-1]

ลองออนไลน์!

512/(i**4+47)-1

,-1,-1,0,3,7,9,9,9,7,3,0,-1,-1,

ซึ่งเข้ารหัสจำนวนช่องว่างที่จะเติมลงในแต่ละบรรทัด ( (-1)*' 'เท่ากับ0*' ')


2

Python 2, 331 241 229 ไบต์

จะตีกอล์ฟเพิ่มในภายหลัง

l=("AaBbCc|BbCcDd|EeFfGg|HhIiJj|KkLlMm|NnOoPp|QqRrSs|TtUuVv|   WwXx|%sYy"%(" "*7)).split("|");n=0;v=1;p='for i in([8]*8+[6,2])[::v]:print l[n]+" "*i+l[n][::-1];n+=v';exec p;v=-1;n=9;print"{0}ZZ\n{0}zz\n{0}ZZ".format(" "*9);exec p

2

Lua, 212 ไบต์

s=([[         Z
       Yy 
   WwXx   
TtUuVv_QqRrSs_NnOoPp_KkLlMm_HhIiJj_EeFfGg_BbCcDd_AaBbCc    ]]):gsub("_","    \n")S="         zz"for z in s:gmatch"[%w ]+"do k=z..z:reverse()S=k..'\n'..S..'\n'..k end print(S)

ง่ายพอโดยอิงจากคำตอบของ TimmyD สร้างแขนซ้ายด้านบนโดยใช้ชิ้นงานที่มีการบีบอัดต่ำมากจากนั้นทำการสะท้อนกระจกทั้งสองในครั้งเดียวด้วย 'zz' และพิมพ์

ลองใช้กับ Repl.It


2

05AB1E , 48 46 40 38 36 ไบต์

Ž3ô8.DƵJ6XD)bTj»0ð:1žRAu¦«Dl.ιS.;º.∊

-2 ไบต์ (และโอกาสที่ 10 มากขึ้นด้วยวิธีทางเลือกนี้) ขอบคุณที่@MagicOctopusUrn

ลองออนไลน์

คำอธิบาย:

Ž3ô            # Push compressed integer 1008
   8.D         # Duplicate it 8 times
      ƵJ       # Push compressed integer 120
        6      # Push 6
         XD    # Push 1 twice
           )   # Wrap all into a list
b              # Convert each to binary
 Tj            # Add leading spaces to each binary-string to make them size 10  
   »           # Then join all strings by newlines
0ð:            # Replace all 0s with spaces
 žR            # Push the string "ABC"
   Au¦«        # Merge the uppercased alphabet minus the first "A" with it
       Dl      # Create a lowercase copy
             # Intersect the uppercase and lowercase strings: "AaBbCcBb..."
           S   # Convert it to a list of characters
1           .; # Replace every 1 with each of these characters in the same order
º              # Then mirror everything vertically without overlap,
 .∊            # and horizontally with the last line overlapping
               # (and output the result implicitly)

ดู 05AB1E เคล็ดลับของฉัน (ส่วนวิธีบีบอัดจำนวนเต็มขนาดใหญ่ )เพื่อทำความเข้าใจว่าเพราะŽ3ôอะไร1008และƵJเป็น120อย่างไร


1
-2 bytes โดยใช้วิธี mask:•3ô•8.D120 6 1D)bí.Bí»…abcA¦«Dus.ιv1y.;}0ð:º.∊
Magic Octopus Urn

1
@ MagicOctopusUrn อาดีและมีการบีบอัดและ builtin "abc"มันสามารถ golfed อีก 6: •3ô•สามารถŽ3ô; 120 6 1DสามารถƵJ6XD; สามารถ…abcA¦«Dus.ι žRAu¦«Dl.ι:)
Kevin Cruijssen

1
@ MagicOctopusUrn โอ้และอีก 2 รายการโดยเปลี่ยนí.Bíเป็นTj(ใช้ได้เฉพาะกับรุ่นใหม่ แต่ไม่แน่ใจว่าเป็นข้อผิดพลาดหรือเจตนา) ดังนั้นโดยนัยคุณเปิดใช้งานการบันทึก 10 ไบต์ทั้งหมดด้วยวิธีการอื่นของคุณ : D
Kevin Cruijssen

1
คุณต้องหาอีกหนึ่งที่จะชนะ;)
Magic Octopus Urn

1
@MagicOctopusUrn Fine, ถูกลบอีก 2 รายการ ; p และžRAu¦«Dl.ιSอาจเป็นได้A¬žR:uSDl.ιแต่น่าเสียดายที่จะไม่บันทึกไบต์ และ0м.Bแทนที่จะ0ð:เป็นไบต์มากกว่าแทนที่จะน้อย .. Kinda หวังว่ากระจกอาจจะทำกล่องโดยการเพิ่มช่องว่างต่อท้ายดังนั้น.Bไม่จำเป็น แต่บางทีมันดีกว่าที่พวกเขาจะไม่ท้าทายความสามารถอื่น
Kevin Cruijssen

2

Stax , 42 41 38 35 ไบต์

înáöêòé{V║»╧å╓ä¥ì√‼╦▓°nlΓΣ▌ê9t☻*$╢√

เรียกใช้และแก้ไขข้อบกพร่อง

อัปเดต:มีข้อผิดพลาดในโซลูชัน 41 ไบต์ (ใช่แม้ว่าจะไม่มีอินพุต) ในขณะที่แก้ไขมันฉันพบว่ามีอีก 3 ไบต์ที่จะโกน

อัปเดตอีกครั้ง:มีการแข่งขันหยุดชะงักดังนั้นฉันจึงลบออกไปอีก 3 ไบต์สำหรับกรณีฉุกเฉิน

คำอธิบาย: (โซลูชันที่แตกต่างกัน แต่มีขนาดเท่ากัน)

VA3(        "ABC"
VAD2T       "BCD...VWX"
+3/         concatenate and split into groups of 3
'Y]+        concatenate ["Y"]
{cv\$m      map each string using: copy, lowercase, zip, flatten
.ZzM+       concatenate ["Z", "z"]
|p          palindromize list of strings
m           map each string _ using the rest of the program and implicitly print output
  c%Nh6+H   (-len(_)/2 + 6) * 2
  )         left-pad (npm lol amirite) to length
  A(        right-pad to 10
  :m        mirror (a + a[::-1])

เรียกใช้อันนี้


1

Matricks , 105 ไบต์ (ไม่ใช่การแข่งขัน)

โอ้โหฉันพบข้อผิดพลาดมากมาย ส่วนที่ยากของความท้าทายนี้คือการข้ามตรงกลาง นั่นทำให้เกือบครึ่งหนึ่งของจำนวนไบต์

วิ่งด้วย-A 1ธง

m+/c2+66+*r3*32%c2 7 6v{k-{}1z-L1Q}u{q-Lc2k+{}2b0b0b0a[a0a0u[a89a121]a[u0u90]]}a{Y}u[mQc9a122a122]u{z1cX}

คำอธิบาย:

m + / c2 + 66 + * r3 * 32% c2 7 6 # สร้างบล็อก "ปกติ"
v {k - {} 1z-L1Q} # เพิ่มส่วน "ผิดปกติ" ด้านบน
u {q-Lc2k + {} 2b0b0b0a [a0a0u [a89a121] a [u0u90]]}} # ทำ 1/4 ของแนวทแยงที่แปลก
a {Y} u [mQc9a122a122] u {z1cX} # ทำมิเรอร์บล็อกที่เพิ่งสร้างเพิ่ม
                                             # ตัวพิมพ์เล็ก zs ระหว่างครึ่ง

ข้อผิดพลาดที่ผมยังไม่ได้รับการแก้ไขเลยก็คือส่วนหนึ่งที่ผ่านมาไม่ทำงานเมื่อคุณใส่ตัดหลังu{z1cX} Xจะตรวจสอบ / แก้ไข




1

Brainfuck, 456 ไบต์

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

ลองออนไลน์!


0

Python 3 , 215 ไบต์ (ไม่ใช่การแข่งขัน)

p=lambda l:l.ljust(10)+l[::-1].rjust(10)
a=("AaBbCc|BbCcDd|EeFfGg|HhIiJj|KkLlMm|NnOoPp|QqRrSs|TtUuVv|   WwXx|%sYy|%sZ"%(7*' ',9*' ')).split('|')
print('\n'.join([p(x)for x in a]+[' '*9+'zz']+[p(x)for x in a[::-1]]))

ลองออนไลน์!

รับแนวคิดบางอย่างจากโซลูชัน Python 2 ทั้งสอง แต่ใช้แนวคิดเหล่านี้กับแนวทางโดยใช้การเข้าร่วม () ที่ดูเหมือนว่าจะประหยัดได้ไม่กี่ไบต์ เป็นไปได้ว่าสิ่งนี้สามารถเล่นกอล์ฟต่อไปได้ ฉันอาจกลับมาทบทวนในภายหลัง


หมายเหตุว่าคำตอบไม่ได้จะต้องมีการทำเครื่องหมายที่ไม่ใช่การแข่งขัน
Jonathan Frech

@JonathanFrech Python 3 เปิดตัวมานานกว่าความท้าทายนี้ สิ่งนี้จะต้องมีแท็ก "ไม่แข่งขัน" ด้วยเหตุผลอื่น
pppery

@pppery สิ่งหนึ่งที่ฉันสังเกตได้คือโพสต์นี้ไม่ได้สร้างช่องว่างเพื่อเติมเต็มพื้นที่เว้าด้านซ้ายของโครโมโซม
Jonathan Frech

@squid ฉันขอให้ทำไมคำตอบนี้ถูกทำเครื่องหมายว่าไม่แข่งขัน?
Jonathan Frech


0

Bubblegum, 168 ไบต์

00000000: 6dd1 c712 8230 1006 e0fb 3e45 5e85 264d  m....0....>E^.&M
00000010: 7a51 b8a1 14e9 1d91 a757 4632 ce38 9bd3  zQ.......WF2.8..
00000020: e6cb a4ec 1f26 626f dc9d 1ce3 cedd d888  .....&bo........
00000030: 819d f898 62cc ef0c 4272 4ac5 8c62 26a6  ....b...BrJ..b&.
00000040: a744 00e9 21e7 4a41 b150 72f9 2181 5a9e  .D..!.JA.Pr.!.Z.
00000050: 2bad a658 6bd5 b954 416f 8cd6 ec28 7666  +..Xk..TAo...(vf
00000060: 6b34 3a58 bd3d 3823 c5d1 19ec de02 77f2  k4:X.=8#......w.
00000070: 667f a1b8 f8b3 37b9 f0a9 2ecf ebfa b5f5  f.....7.........
00000080: fabc c0b1 1ebc 0879 0574 4648 18fe ea6d  .......y.tFH...m
00000090: c3fc b7e3 ef44 f462 f489 6833 68db 6840  .....D.b..h3h.h@
000000a0: 6894 68e8 0cf2 3d6f                      h.h...=o

ลองออนไลน์!

เนื่องจากนี่เป็นการส่ง Bubblegum ครั้งแรกของฉันมันอาจไม่ใช่วิธีที่ดีที่สุด กรุณาตรวจสอบอีกครั้ง

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