พิมพ์ตัวอักษรสี่ครั้ง


37

โปรแกรมจะต้องพิมพ์ตัวอักษรสี่ครั้ง: ลำดับแรกตามลำดับตัวอักษรตัวที่สองตามลำดับของคีย์บอร์ดแบบ qwerty ที่สามตามลำดับของแป้นพิมพ์ dvorak และสุดท้ายตามลำดับตัวอักษรแบบย้อนกลับ ผลลัพธ์ควรมีลักษณะเช่นนี้:

abcdefghijklmnopqrstuvwxyz
qwertyuiopasdfghjklzxcvbnm
pyfgcrlaoeuidhtnsqjkxbmwvz
zyxwvutsrqponmlkjihgfedcba

เอาต์พุตไม่คำนึงถึงขนาดตัวพิมพ์และคุณสามารถเพิ่มหรือละเว้นการขึ้นบรรทัดใหม่หรือเว้นวรรคได้ทุกที่ที่คุณต้องการ

The catch : โปรแกรมจะต้องมีความยาวน้อยกว่า 104 ตัวอักษรหรืออีกนัยหนึ่งคือเล็กกว่าความยาวของตัวอักษรสี่เท่า

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

แก้ไข: ฉันจะยอมรับคำตอบที่สั้นที่สุดในวันพุธที่ 4/27/2011

แก้ไข 2: และผู้ชนะคือGolfscript (ตามปกติ) ใน 64 ตัวอักษร! สถานที่ที่สองซึ่งอยู่ข้างหลังเพียงสามตัวอักษรก็อยู่ใน Golfscript ด้วย 67 ตัวอักษรตามด้วย Bash ในสถานที่ที่สามที่มี 72 ตัวอักษร

แต่มีอีกไม่กี่ที่ฉันต้องการพูดถึงเช่นนี้ซึ่งขึ้นอยู่กับคำจำกัดความของคุณใช้เพียง 52 "ตัวอักษร" และอันนี้ที่เขาเขียนในภาษาที่เขาสร้างขึ้น

มีคนไม่กี่ คน ที่ทำลายกฎที่ไม่ได้เขียนไว้และไม่ผ่านการคัดเลือก แต่ฉันจะพูดถึงพวกเขาเพียงเพื่อความคิดโดยไม่ต้องใช้กล่อง


11
พิจารณาใช้เงินรางวัลสำหรับคำตอบที่ทำให้คุณประทับใจ ฉันคิดว่าการยอมรับคำตอบในการเล่นกอล์ฟควรเป็นหลักเกณฑ์ตามธรรมชาติ (เช่นความยาว)
Joey

ฉันสูญเสียการใช้ Tcl: tio.run/…
sergiol

คำตอบ:


16

Python 2, 97 ตัวอักษร

q="qwertyuiopasdfghjklzxcvbnm"
a="".join(sorted(q))
print a,q,"pyfgcrlaoeuidhtnsqjkxbmwvz",a[::-1]

การเรียงลำดับ QWERTY และการแปลงกลับจากรายการเป็นสตริงจะสั้นกว่าตัวอักษร! *

ตัวเลือกอื่นสำหรับการสร้างตัวอักษรในตัวละครน้อยกว่าตัวอักษร:

print map(chr,range(65,91))

แม้ว่าสิ่งนี้จะพิมพ์รายการอักขระของหลาม

มีไม่มากที่ต้องทำที่นี่ในทางของการบีบอัดข้อมูล การรวมตัวอักษรลงใน 5 บิตจะบันทึกได้เพียง 39 ตัวอักษรเท่านั้นซึ่งไม่มากถ้าคุณต้องยกเลิกการติดขัดตัวอักษรเหล่านั้น ดูเหมือนว่า zlib (เช่นเป็นตัวอย่าง) บันทึกน้อยกว่า 20 ไบต์; การเข้ารหัสลำดับเป็นรายการของ delta ที่ตัวอักษรถัดไปยังคงใช้เวลา 5 บิตสำหรับแต่ละ delta เนื่องจากที่ใหญ่ที่สุดในลำดับนี้คือ -22:

[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
 1, 1, 1, 1, 1, 1, 1, -9, 6, -18, 13, 2, 5, -4, -12, 6, 
 1, -15, 18, -15, 2, 1, 2, 1, 14, -2, -21, 19, -20, 12, 
 -1, 3, 9, -19, 1, -4, 15, -6, -11, 14, -10, 16, -12, -5, 
 4, 12, -6, 5, -2, -7, 1, 13, -22, 11, 10, -1, 4, 0, -1, 
 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1]

* ถึงแม้ว่าจะเล็กน้อยเท่านั้น


1
Python 3.5:q="qwertyuiopasdfghjklzxcvbnm";a=sorted(q);print(*a,q,"pyfgcrlaoeuidhtnsqjkxbmwvz",*a[::-1])
Veedrac

15

PHP, 100 ไบต์

ตามที่ ISO 8859-1:

<?=base64_encode("i·yø!9%z)ª»-ºü1Ë:°z»rº*)jÇ_ä<\½¹æ§'àr¹Z¡ë¢vg²¨äŹ°¿<òÇî¶Êê¦æHâÞuÆÚ");

ในการทำซ้ำได้อย่างน่าเชื่อถือ

printf '<?=base64_encode("' > 4times.php
printf abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcba | base64 -d >> 4times.php
printf '");' > 4times.php

5
นั่นเป็นวิธีที่น่าสนใจที่จะทำ ส่วนอื่น ๆ ทั้งหมดต่างกันในแนวคิดเดียวกัน แต่อันนี้ต่างออกไปเล็กน้อย
Peter Olson

ฉันไม่คิดว่าควรนับสิ่งนี้ คำถามถูกติดแท็ก "ความซับซ้อน Kolmogorov" และระบุ "104 ตัวอักษร" ซึ่งหมายความว่าเราควรแยกแยะสิ่งที่เราพิจารณาถึงตัวละคร มิฉะนั้นฉันจะกำหนดอักขระที่เข้ารหัสด้วยอักขระเดี่ยวที่แม็พกับ ASCII สำหรับโปรแกรมทั้งหมดที่แก้ปัญหาแล้วถอดรหัสมัน
Adrian Petrescu

2
@Adrian Petrescu: นั่นแก้ได้อย่างง่ายดายโดยกำหนดให้การเข้ารหัสนั้นมีอยู่ในเวลาที่มีการท้าทาย
Lowjacker

@ Lowjacker แน่นอน แต่ดูเหมือนว่าจะเป็นวิธีที่ค่อนข้างง่ายในการแก้ไขปัญหานี้
Adrian Petrescu

5
@Adrian, ข้อดีของ unicode เมื่อใช้อักขระ vs ไบต์ได้รับการยอมรับเป็นเวลานาน ในความคิดของฉันมันไม่สมเหตุสมผลที่คำถามจะถูกแท็ก Kolmogorov ในขณะที่ขอตัวละคร มันควรจะนับไบต์ มันขึ้นอยู่กับผู้ถามคำถามที่จะต้องระมัดระวังเกี่ยวกับข้อกำหนดเหล่านี้
gnibbler



9

Python, 97 96 "ตัวอักษร"

การใช้คำว่า "อักขระ" อย่างอิสระนี่คืองูหลามบางตัวที่ใช้อักขระ Unicode แบบ 16 บิตเพื่อเข้ารหัสอักขระปกติ 3 ตัวแต่ละตัว โปรแกรมมีทั้งหมด 96 ตัวอักษร 35 ตัวซึ่งเป็นอักขระที่แปลกที่สุดที่ฉันเคยเห็น

for i in range(104):print chr((ord(u'ࠠᒃ⃦ⵉ��割廕��匓�เ᳅ⵉૹ�懬ࣅű傎ᱨ�⤰〷�弙劶��ⶍKᓇࡤ^A'[i/3])>>i%3*5&31)+97),

ฉันไม่แน่ใจว่าขยะยูนิโค้ดจะมาอย่างถูกต้องดังนั้นนี่เป็นโปรแกรมไพ ธ อนเพื่อสร้างโปรแกรมไพ ธ อนด้านบน:

#!/usr/bin/python                                                                                                                                                                 
import codecs
f=codecs.open('alpha.py','w','utf-8')
f.write('#!/usr/bin/python\n')
f.write('# coding=utf-8\n')
f.write('for i in range(104):print chr((ord(u\"')
S='''abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcbaa'''
for i in xrange(0,104,3):
 n=32*32*(ord(S[i+2])-97)+32*(ord(S[i+1])-97)+ord(S[i+0])-97
 f.write(u'%c'%n)
f.write('"[i/3])>>i%3*5&31)+97),\n')

9

Bash, 72

echo {a..z} qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz {z..a}

แก้ไข: ลบtr -dแล้ว

เครดิต: Alexander, Roger


2
กฎช่วยให้คุณละเว้นละเว้น|tr -d ' 'การบันทึก 10 ตัวอักษรและทำให้รุ่นนี้เป็นผู้นำในขณะที่เขียน :-)
อเล็กซานเด Gladysh

@Alexander Cool ;-) ไม่ทราบว่า ขอบคุณ @Roger แม้ว่าจะชี้ไปในทิศทางที่ถูกต้องก็ตาม
asoundmove

ฉันพยายามหาวิธีแก้ปัญหาที่หรูหรากว่าด้วยพหุนามแบบบางอย่างที่มีพลังของ primes และ modulo (หรือกล่าวอีกนัยหนึ่งก็คือฟังก์ชั่นการเปลี่ยนแปลงที่ง่ายพอที่ทำงานผ่านลำดับนั้น) ... แต่ไม่สามารถใช้เวลาได้ สำหรับวิธีแก้ปัญหาเช่นนี้ดังนั้นฉันจะทิ้งมันไว้ รวมทั้งมันก็ค่อนข้างยากที่จะแสดงความสรุป
asoundmove

9

Golfscript, 64 ตัวอักษร

"qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz".$2%\1$-1%

หมายเหตุ: เช่นกัน 64 ไบต์ ที่จริงแล้วการเล่นกับ Unicode และการเปลี่ยนแปลงพื้นฐานนั้นดูเหมือนจะเป็นการต่อต้านเนื่องจากbaseคำหลักยาวเกินไป


6

Windows PowerShell, 89

ไม่ดีโดยเฉพาะอย่างยิ่ง แต่อย่างน้อยก็สั้นกว่าเอาท์พุทสตริง:

[char[]](65..90)
'qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz'
[char[]](90..65))

วิธีที่สั้นกว่าตอนนี้ที่ฉันเห็นว่ามีการพักผ่อนบนพื้นที่ว่าง และก็ยังสั้นกว่านี้เล็กน้อยหากฉันเพิกเฉยต่อคดีที่ฉันได้รับอนุญาต


2
คุณได้มีเพิ่ม)มี ควรเป็น 88.
Iszi

5

Golfscript, 76 , 67 ตัวอักษร

123,97>+."qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz"\-1%
  • รหัสทับทิมเปลี่ยนแปลงไป Ventero ของรุ่นตัวอักษร Golfscript

ใช้123,97>+สำหรับสร้างตัวอักษรเริ่มต้น
Ventero

ขอบคุณ Ventero ฉันเห็นจริง ๆ ว่าในโพสต์อื่น ๆ ของคุณในวันอื่น ๆ
คุณ

4

CI - 92 ตัวอักษร

'a(1p'z((,0(4d)(.$)<)$)(0c0c.1+2p$.)>)$)qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz

CI ("Compiler / Interpreter") เป็นภาษาสแต็กที่ใช้ง่ายที่ฉันสร้างขึ้น ความท้าทาย"ล่ามแปลภาษาด้วยตนเอง" ( ลิงก์ไปยังคำตอบ ) ฉันโพสต์คำตอบนั้นประมาณสองชั่วโมงก่อนที่ความท้าทายนี้จะโพสต์ ไม่ใช่ GolfScript (ซึ่งฉันยังไม่ได้เรียนรู้) เนื่องจากเป้าหมายของฉันคือทำให้ล่ามสั้น

โปรแกรมนี้จะต้องส่งผ่านไปยังciล่ามผ่านอินพุตมาตรฐาน ล่ามถือว่าตัวอักษรหลังจากยุติ)เป็นอินพุตไปยังโปรแกรม ภาษาของฉันไม่รองรับตัวอักษรสตริงดังนั้น stdin จึงเข้ามาแทนที่


3

Python 2.7.X - 103 ตัวอักษรแดกดัน ...

a='abcdefghijklmnopqrstuvwxyz'
print a,'qwertyuiopasdfghjklzxcvbnm pyfgcrlaoeuidhtnsqjkxbmwvz',a[::-1]

เมื่อมันปรากฏออกมาการสร้างตัวอักษรในไพ ธ อนนั้นใช้ตัวอักษรมากกว่าการเข้ารหัสแบบแข็ง เช่นเดียวกับการนำเข้าตัวอักษร ต้องรักภาษาที่เน้นการอ่านเป็นศูนย์กลางในบางครั้ง


1
คุณไม่ต้องการช่องว่างระหว่างสตริง QWERTY และ DVORAK มันจะน้อยกว่า 1 ตัวอักษร
Lowjacker

จริง แต่หลามต่อท้ายช่องว่างระหว่างแต่ละรายการในรายการการพิมพ์ที่คั่นด้วยเครื่องหมายจุลภาคโดยอัตโนมัติดังนั้นพื้นที่คือการเสียสละส่วนตัวของฉันในการเปลี่ยนแปลงของผลลัพธ์ที่อ่านได้
arrdem

คุณสามารถใช้+แทน,และประหยัดพื้นที่นั้น
Martin Ueding

3

C - 133 ตัวอักษร

ฉบับย่อจาก Casey:

main(i){char a[105];strcpy(a+26,"qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz");for(i=0;i<26;)a[i]=a[103-i]=i+++65;puts(a);}

Whitespaced:

main(i) {
    char a[105];
    strcpy(a+26, "qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz");
    for(i=0;i<26;)
        a[i]=a[103-i]=i+++65;
    puts(a);
}

เอาท์พุท transposed

นี่คือรุ่นที่ถ่ายทอดออกมาเพื่อความสนุกสนาน 134 ตัวอักษร

main(i){char*a="qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz";for(i=0;i<26;i++,a++)printf("%c%c%c%c\n",i+65,*a,*(a+25),90-i);}

Whitespaced:

main(i){
  char*a="qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz";
  for(i=0;i<26;i++,a++)
    printf("%c%c%c%c\n",i+65,*a,*(a+25),90-i);
}

พิมพ์:

AqmZ
BwpY
CEYX
DrfW
EtgV
FycU
GurT
Hils
IoaR
JpoQ
KaeP
LsuO
MdiN
NfdM
OghL
PhtK
QjnJ
RksI
SlqH
TzjG
UxkF
VcxE
WvbD
XBMC
YnwB
ZmvA

แน่นอนว่ายังไม่พอดี
Alexander Gladysh

1
ด้วยการประกาศiเป็นโกลบอลและใส่strcpy(...)บล็อกแรกของ for for loop คุณจะได้ 129 แต่ก็มากเกินไป
bebe

3

J

x=:(97+/i.26){a.
x
261329910883437428257896643x A.x
247073478763191548160234722x A.x
(_1+/-i.26){x

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


261329910883437428257896643 มีการแยกตัวประกอบเฉพาะ 7 * 601 * 991 * 213987797 * 292923318887 ดังนั้นจึงไม่มีอำนาจในตัวนี้
Jerry Jeremiah

3

Python, 90 ตัวอักษร Unicode

#coding:u8
print u"扡摣晥桧橩汫湭灯牱瑳癵硷穹睱牥祴極灯獡晤桧歪穬捸扶浮祰杦牣慬敯極桤湴煳歪扸睭究祺睸當獴煲潰浮歬楪杨敦捤慢".encode("u16")[2:]

ทำงานที่ ideone - http://ideone.com/R2dlIหรือ codepad - http://codepad.org/lp77NL9w


2
จริงๆแล้วมันมีเพียง 52 "ตัวอักษร"
Peter Olson

3

Javascript 139 121

ใหม่:

q='qwertyuiopasdfghjklzxcvbnm'
a=q.split('').sort()
alert(a.join('')+q+'pyfgcrlaoeuidhtnsqjkxbmwvz'+a.reverse().join(''))

อายุ:

a=[]
a[26]='qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz'
for(i=0;i<26;i++)a[i]=a[52-i]=String.fromCharCode(i+65)
alert(a.join(''))

คุณสามารถมี 121 ด้วย:alert((a=(q='qwertyuiopasdfghjklzxcvbnm').split('').sort()).join('')+q+'pyfgcrlaoeuidhtnsqjkxbmwvz'+a.reverse().join(''))
WallyWest

2

Lua - 111 ตัวอักษร

เอาชนะ C และ C ++! :-)

print'abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcba'

รุ่น "Clever" ใน Lua

129 ตัวอักษร

q='qwertyuiopasdfghjklzxcvbnm'a={q:byte(1,-1)}table.sort(a)a=q.char(unpack(a))print(a,q,'pyfgcrlaoeuidhtnsqjkxbmwvz',a:reverse())

Whitespaced:

q='qwertyuiopasdfghjklzxcvbnm'
a={q:byte(1,-1)}
table.sort(a)
a=q.char(unpack(a))
print(a,q,'pyfgcrlaoeuidhtnsqjkxbmwvz',a:reverse())

2

C - 163 135 ตัวอักษร

สิ่งนี้ไม่ตรงตามข้อกำหนดในขณะที่มีนาฬิกามากกว่า 104 ตัว แต่มันสนุกที่จะทำ บางทีบางคนอาจมีคำแนะนำ

main(i){char a[105];strcpy(&a[26],"qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz");for(i=0;i<26;)a[i]=a[103-i]=i+++65;puts(a);}

คอมไพล์ใน GCC 4.5.1 (ยังไม่ผ่านการทดสอบ) Yay สำหรับการละเว้น #includes ประเภทการส่งคืนและการประกาศตัวแปร! Hardcoding จะส่งผลให้โปรแกรมสั้นลง แต่นั่นก็ไม่ใช่เรื่องสนุก

รุ่นขาว

main(i) {                                                                                   
    char a[105];                                                                        
    strcpy(&a[26], "qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz");                 
    for(i=0;i<26;)                                                                          
        a[i]=a[103-i]=i+++65;                                                               
    puts(a);                                                                                
}

C - 124 122 ง่อย

นี่คือเวอร์ชันฮาร์ดโค้ดที่อ่อนแอและยังไม่สามารถตัดได้

main(){puts("abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcba");}

ใช้puts()แทน printf ในกรณีที่สอง - น้อยกว่า 2 ตัวอักษร
Alexander Gladysh

และแทนที่whileด้วยputs(a);ในกรณีแรกลดลง*p=a; - 138 ตัวอักษรแทน 163
Alexander Gladysh

ข้อเสนอแนะที่ยอดเยี่ยม! putsผมลืมทั้งหมดเกี่ยวกับ การเปลี่ยนแปลง
Casey

2

PHP 88 ไบต์

<?=$a=join(range(a,z)),~Žˆš‹†Š–žŒ›™˜—•”“…‡œ‰‘’†™˜œ“žšŠ–›—‹‘ŒŽ•”‡’ˆ‰…,strrev($a);

2

J - 69 ถ่าน

'pyfgcrlaoeuidhtnsqjkxbmwvz'(,~|.)&(,\:~)'mnbvcxzlkjhgfdsapoiuytrewq'

คำอธิบาย:

  • (,\:~) y- การเรียงลำดับyจากมากไปน้อย ( \:~) และผนวก ( ,) yที่จะ

  • x (,~|.) y- (Reverse |.) และผนวกที่ด้านหน้าของyx

  • x F&G y- ดำเนินการ(G y) F (G y)คือดำเนินการFกับผลลัพธ์ของการใช้Gกับอาร์กิวเมนต์

ดังนั้นเมื่อรวมเข้าด้วยกันเราจะเพิ่มตัวอักษรถอยหลังทั้งที่ Dvorak และ reverse-QWERTY จากนั้นย้อนกลับ QWERTY / หนึ่งตัวอักษรและวางไว้ที่ด้านหน้าของ Dvorak / ตัวอักษรหนึ่ง


2

Bash, 64

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

echo {a..z} $(sed 1d $0|base64) {z..a};exit
««·+¢¢–¬uø!ŽIsÅËÛžjr~+•ªº'a¶{*ŽL[›ó

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

{a..z}และ{z..a}เป็นคนที่อธิบายตัวเองได้ดี แต่โดยพื้นฐานแล้วมันก็แค่พิมพ์ตัวละครทุกตัวในช่วงนั้น ๆ

$(sed 1d $0|base64) เอาต์พุตโปรแกรมละเว้นบรรทัดแรกจากนั้นส่งผ่านตัวเข้ารหัส base64 (ตามตัวอย่างอื่น ๆ ที่ทำไปแล้ว)

เหตุผลนี้สั้นกว่าตัวอย่างที่คล้ายกันอื่น ๆ ...

... เป็นเพราะ{a..z}ช่วงนั้นสั้นกว่าการเข้ารหัส base64 ดังนั้นฉันแค่ต้องการ base64 เข้ารหัสครึ่งสตริง และเนื่องจากฉันกำลังอ่านข้อมูลไบนารีจากไฟล์แทนที่จะเก็บไว้ในสตริงฉันไม่จำเป็นต้องหลบเลี่ยงอักขระใด ๆ ในโค้ด

วิธีสร้างสคริปต์นี้ใหม่:

หากรหัสไม่ได้คัดลอก / วางอย่างถูกต้องจาก Stack Exchange ไปยังเท็กซ์เอดิเตอร์ของคุณให้รันสิ่งต่อไปนี้ในบรรทัดคำสั่งของคุณ (ผู้ไม่เชื่อเรื่องเชลล์):

echo 'echo {a..z} $(sed 1d $0|base64) {z..a};exit' > alphabetgolf
echo 'qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz' | base64 -d >> alphabetgolf

จากนั้นเรียกใช้:

bash alphabetgolf


1

C ++

มันเป็นเรื่องที่น่าเศร้าเมื่อวิธีที่สั้นที่สุดในการทำบางสิ่งในภาษาคือการเขียนโค้ดให้ยาก

#include <iostream>

int main()
{
 std::cout<<"abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcba";
}

คุณไม่จำเป็นต้องแสดงผล linefeeds
Lowjacker

@ ต่ำ: Doh! ฉันลืมที่จะลบสิ่งเหล่านั้นเมื่อฉันนำตัวแบ่งบรรทัดออกมาฉันรู้ว่าฉันไม่ต้องการ ขอบคุณสำหรับการชี้ให้เห็นว่า
John

นี่เป็นทางออกที่ชัดเจนมากและเกินความต้องการความยาวสูงสุด
Peter Olson

std::coutสั้นกว่านั้นusing namespace stdและคุณสามารถข้ามvoidไปได้
Alexander Gladysh

@Alex: ขอบคุณที่ชี้ให้เห็น
จอห์น

1

J (77)

(,|.@(26&{.))(,~/:~@(26&{.))'qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz'

ลบอักขระ 3 ตัวโดยใช้ตัวแปร:

(,|.@a)(,~/:~@(a=.26&{.))'qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz'

แยกอักขระได้อีก 2 ตัวโดยใช้วิธีระดับค่า:

(|.a),~t,~a=./:~26{.t=.'qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz'

1

Haskell (95)

main=putStr$['a'..'z']++"qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz"++['z','y'..'a']

Perl (51)

ไม่มีกฎที่บอกว่าฉันทำไม่ได้

use LWP::Simple;print get("http://bit.ly/fGkflf");

1
ดูรายชื่อของช่องโหว่มาตรฐาน
boboquack

1

Q (68)

.Q.a,"qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz",(|:).Q.a

ขาออก:

"abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfg     
crlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcba"

พยายามที่จะหาการปรับปรุงเกี่ยวกับการเข้ารหัสที่ยากกลางสอง แต่ไม่ได้มากับหนึ่ง


1

K - 69 ถ่าน

b,a,|b:a@<26#a:"qwertyuiopasdfghjklzxcvbnmpyfgcrlaeouidhtnsqjkxbmwvz"

คำอธิบาย:

  • 26#a:- กำหนดรูปแบบแป้นพิมพ์สองรูปแบบให้กับaจากนั้นใช้อักขระ 26 ตัวแรก

  • b:a@<- จัดเรียงaและกำหนดให้กับb: <จัดให้มีการเรียงสับเปลี่ยนเรียงลำดับจากน้อยไปมากและ@ให้เราจัดทำดัชนีaเพื่อเรียงลำดับ

  • b,a,|- ผนวกในแถวbนั้นaแล้วย้อนกลับ ( |) bของ


1

Pyth, 57

G"qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz"VG

ตัวอักษรสตริงตัวอักษรย้อนกลับ G คือตัวอักษร พิมพ์เป็นนัย


1

Dyalog APL , 60 ไบต์

⎕A'QWERTYUIOPASDFGHJKLZXCVBNMPYFGCRLAOEUIDHTNSQJKXBMWVZ',⌽⎕A

พิมพ์:

  ABCDEFGHIJKLMNOPQRSTUVWXYZ  QWERTYUIOPASDFGHJKLZXCVBNMPYFGCRLAOEUIDHTNSQJKXBMWVZ ZYXWVUTSRQPONMLKJIHGFEDCBA

ซึ่งได้รับอนุญาตตาม OP:

เอาต์พุตไม่คำนึงถึงขนาดตัวพิมพ์และคุณสามารถเพิ่มหรือละเว้นการขึ้นบรรทัดใหม่หรือเว้นวรรคได้ทุกที่ที่คุณต้องการ


1

เยลลี่, 36 ไบต์ (ไม่แข่งขัน)

Øa;Øq;“pyfgcrlaoeuidhtnsqjkxbmwvz”;U

ลองออนไลน์!

คำอธิบาย:

Øa;Øq;“pyfgcrlaoeuidhtnsqjkxbmwvz”;U    |
Øa;                                     | alphabet
   Øq;                                  | list with all rows of the qwerty keyboard
      “pyfgcrlaoeuidhtnsqjkxbmwvz”;     | string
                                   U    | reverse

1

05AB1E , 60 59 ไบต์

AÂ"qwertyuiopasdfghjklzxcvbnm""pyfgcrlaoeuidhtnsqjkxbmwvz"»

ลองออนไลน์!

- ดันตัวอักษรสองแฉก

"qwertyuiopasdfghjklzxcvbnm""pyfgcrlaoeuidhtnsqjkxbmwvz" - ผลักดัน qwerty และ drovak

» - พิมพ์สแต็ค

05AB1E , 57 ไบต์ (หากคุณไม่สนใจการสุ่ม \ n)

AÂ"qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz"»

ลองออนไลน์!


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