Cetak alfabet empat kali

37

Program harus mencetak alfabet empat kali: pertama dalam urutan abjad normal, kedua dalam urutan keyboard qwerty, ketiga dalam urutan keyboard dvorak, dan terakhir dalam urutan abjad terbalik. Outputnya harus menyerupai ini:

abcdefghijklmnopqrstuvwxyz
qwertyuiopasdfghjklzxcvbnm
pyfgcrlaoeuidhtnsqjkxbmwvz
zyxwvutsrqponmlkjihgfedcba

Outputnya tidak peka terhadap huruf besar-kecil, dan Anda dapat menambahkan atau menghilangkan baris atau spasi baru di mana pun Anda inginkan.

Tangkapan : program harus kurang dari 104 karakter, atau, dengan kata lain, lebih kecil dari panjang alfabet kali empat.

Saya akan menerima jawaban dengan kode terpendek, kecuali jika saya melihat sesuatu yang sangat pintar atau menarik yang saya lebih terkesan.

EDIT: Saya akan menerima jawaban tersingkat pada hari Rabu, 27/4/2011.

EDIT2: Dan pemenangnya adalah (seperti biasa) Golfscript dalam 64 karakter! Tempat kedua , yang berada di belakang hanya dengan tiga karakter, juga dalam Golfscript, dengan 67 karakter, diikuti oleh Bash di tempat ketiga dengan 72 karakter.

Tetapi ada beberapa orang lain yang ingin saya sebutkan, seperti yang ini , yang, tergantung pada definisi Anda, hanya menggunakan 52 "karakter", dan yang ini di mana ia menulisnya dalam bahasa yang ia ciptakan.

Ada beberapa orang yang melanggar aturan tidak tertulis dan tidak memenuhi syarat, tetapi saya akan menyebut mereka hanya karena cara berpikir mereka tanpa kotak.

Peter Olson
sumber
11
Pertimbangkan untuk menggunakan hadiah untuk jawaban yang mengesankan Anda. Saya pikir menerima jawaban dalam kode-golf harus selalu menjadi kriteria alami (yaitu panjang).
Joey
Saya kehilangan menggunakan Tcl: tio.run/…
sergiol

Jawaban:

16

Python 2, 97 karakter

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

Mengurutkan QWERTY dan mengubah kembali dari daftar ke string lebih pendek dari alfabet itu sendiri! *

Pilihan lain untuk membuat alfabet dalam karakter lebih sedikit daripada alfabet itu sendiri:

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

Meskipun ini mencetak daftar karakter Python.

Tidak banyak yang bisa dilakukan di sini dalam hal kompresi data; memasukkan huruf-huruf menjadi 5 bit hanya menghemat 39 karakter, yang tidak banyak jika Anda harus membatalkannya (dan Anda masih harus merepresentasikan byte secara harfiah); sepertinya zlib (seperti contohnya) menghemat kurang dari 20 byte; penyandian urutan sebagai daftar delta ke huruf berikutnya masih membutuhkan 5 bit untuk setiap delta, karena yang terbesar dalam urutan ini adalah -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]

* Meski hanya sedikit.

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

PHP, 100 byte

Seperti ISO 8859-1:

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

Untuk mereproduksi dengan andal,

printf '<?=base64_encode("' > 4times.php
printf abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcba | base64 -d >> 4times.php
printf '");' > 4times.php
Ry-
sumber
5
Itu cara yang menarik untuk melakukannya. Semua yang lain adalah variasi pada ide yang sama, tetapi yang ini sedikit berbeda.
Peter Olson
Saya tidak berpikir ini harus diperhitungkan; pertanyaannya ditandai "kompleksitas Kolmogorov" dan menentukan "104 karakter" yang berarti kita harus membedakan apa yang kita anggap sebagai karakter. Kalau tidak, saya hanya akan mendefinisikan pengkodean karakter saya sendiri dengan satu karakter yang memetakan ke ASCII untuk seluruh program yang memecahkan masalah, dan kemudian memecahkan kode itu.
Adrian Petrescu
2
@Adrian Petrescu: itu mudah dipecahkan dengan mengharuskan pengodean sudah ada pada saat tantangan diajukan.
Lowjacker
@ Lowjacker Tentu, tapi itu sepertinya cara yang cukup arbitrer untuk menyelesaikan ini.
Adrian Petrescu
5
@Adrian, Keuntungan unicode saat menggunakan karakter vs byte telah diakui sejak lama. Menurut pendapat saya itu tidak masuk akal untuk pertanyaan yang akan ditandai Kolmogorov sambil meminta karakter. Seharusnya menghitung byte. Terserah penanya pertanyaan untuk berhati-hati tentang istilah-istilah ini.
gnibbler
10

Ruby 1.9, 88 87 84 80

puts b=[*?a..?z],:qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz,b.reverse
Lowjacker
sumber
10

Bash, 82

echo {a..z}
echo qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz
echo {z..a}
Roger Spencer
sumber
9

Python, 97 96 "karakter"

Mengambil penggunaan kata "karakter" Anda secara bebas, inilah beberapa python yang menggunakan karakter unicode 16-bit untuk mengkodekan 3 karakter normal masing-masing. Program ini total 96 karakter, 35 di antaranya adalah karakter unicode paling aneh yang pernah saya lihat.

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

Saya tidak yakin sampah unicode akan muncul dengan benar, jadi inilah program python untuk menghasilkan program python di atas:

#!/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')
Keith Randall
sumber
9

Bash, 72

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

EDIT: dihapus tr -d.

Penghargaan: Alexander, Roger.

pindahkan
sumber
2
Aturan memungkinkan Anda menghilangkan |tr -d ' ', menyimpan 10 karakter dan menjadikan versi ini pemimpin pada saat penulisan :-)
Alexander Gladysh
@Alexander, Cool ;-) tidak tahu itu. Terima kasih kepada @Roger karena telah menunjuk saya ke arah yang benar.
asoundmove
Saya sedang mencoba menemukan solusi yang lebih elegan dengan semacam polinomial dengan kekuatan bilangan prima dan modulo (atau dengan kata lain menemukan fungsi permutasi yang cukup sederhana yang bekerja melalui urutan itu) ... tetapi tidak dapat menghabiskan waktu yang diperlukan untuk solusi seperti itu, jadi saya akan berhenti di situ. Plus itu akan sangat sulit untuk diungkapkan secara ringkas.
asoundmove
9

Golfscript, 64 karakter

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

Catatan: juga 64 byte. Sebenarnya, bermain dengan Unicode dan perubahan basis tampaknya kontraproduktif karena basekata kunci terlalu panjang.

Peter Taylor
sumber
6

Windows PowerShell, 89

Tidak terlalu bagus, tetapi setidaknya lebih pendek dari string output:

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

Jauh lebih pendek sekarang saya melihat ada relaksasi di whitespace. Dan sedikit lebih pendek, jika saya mengabaikan case yang saya ijinkan.

Joey
sumber
2
Anda punya tambahan di )sana. Harus 88.
Iszi
5

Golfscript, 76 , 67 karakter

123,97>+."qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz"\-1%
KAMU
sumber
Gunakan 123,97>+untuk menghasilkan alfabet awal.
Ventero
Terima kasih Ventero, saya memang melihatnya di postingan Anda yang lain hari itu.
KAMU
4

CI - 92 karakter

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

CI ("Compiler / Interpreter") adalah bahasa sederhana berbasis stack yang saya buat untuk tantangan "Interpreter Mandiri Interpreter" ( tautan untuk menjawab ). Saya memposting jawaban itu sekitar dua jam sebelum tantangan ini diposting. Ini bukan GolfScript (yang masih belum saya pelajari), karena tujuan saya adalah membuat penerjemah menjadi pendek.

Program ini harus diteruskan ke cipenerjemah melalui input standar. Penerjemah memperlakukan karakter setelah terminasi )sebagai input ke program. Bahasa saya tidak mendukung string literal, jadi stdin menggantikannya.

Joey Adams
sumber
3

Python 2.7.X - 103 karakter ironisnya ...

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

Ternyata, membuat alfabet dengan python membutuhkan lebih banyak karakter daripada mengkodekannya. Seperti halnya mengimpor alfabet. Terkadang harus menyukai bahasa yang berpusat pada keterbacaan.

arrdem
sumber
1
Anda tidak membutuhkan ruang antara string QWERTY dan DVORAK, itu akan menjadi 1 karakter lebih sedikit.
Lowjacker
benar, tetapi python secara otomatis menambahkan ruang antara setiap item dalam daftar pencetakan yang dipisahkan koma, jadi ruang tersebut adalah pengorbanan pribadi saya untuk mengubah hasil yang dapat dibaca.
arrdem
Anda bisa menggunakan +alih - alih ,dan menghemat ruang itu.
Martin Ueding
3

C - 133 karakter

Versi singkat dari Casey:

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

Berputar:

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

Output ditransposisikan

Ini adalah versi yang mengubah keluaran, untuk bersenang-senang. 134 karakter.

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);}

Berputar:

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);
}

Cetakan:

AqmZ
BwpY
CeyX
DrfW
Dll
FycU
GurT
HilS
IoR
JpoQ
KaeP
LsuO
MdiN
NfdM
OghL
PhtK
QjnJ
RksI
SlqH
TzjG
UxkF
VcxE
WvbD
XbmC
YnwB
ZmvA
Alexander Gladysh
sumber
Masih tidak pas, tentu saja.
Alexander Gladysh
1
dengan mendeklarasikan isebagai global dan menempatkan strcpy(...)ke blok pertama dari for loop Anda mendapatkan 129. masih terlalu banyak.
bebe
3

J

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

Pengalaman pertama saya dengan J. Idenya adalah hanya menggunakan nomor kanonik (leksikografis) dari permutasi yang diperlukan; sayangnya ini membutuhkan lebih banyak karakter daripada hard-coding-nya. Tetapi jika seseorang dapat menemukan beberapa ekspresi aritmatika (menggunakan kekuatan dan yang lainnya) menghasilkan angka ajaib, itu bisa dipersingkat.

Villemoes
sumber
261329910883437428257896643 memiliki faktorisasi utama 7 * 601 * 991 * 213987797 * 292923318887 sehingga tidak ada kekuatan dalam hal ini.
Jerry Jeremiah
3

Python, 90 karakter unicode

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

berjalan di ideone - http://ideone.com/R2dlI atau codepad - http://codepad.org/lp77NL9w

KAMU
sumber
2
Sebenarnya, ia hanya memiliki 52 "karakter".
Peter Olson
3

Javascript 139 121

baru:

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

tua:

a=[]
a[26]='qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz'
for(i=0;i<26;i++)a[i]=a[52-i]=String.fromCharCode(i+65)
alert(a.join(''))
Neil McGuigan
sumber
Anda juga dapat memiliki 121 dengan:alert((a=(q='qwertyuiopasdfghjklzxcvbnm').split('').sort()).join('')+q+'pyfgcrlaoeuidhtnsqjkxbmwvz'+a.reverse().join(''))
WallyWest
2

Lua - 111 karakter

Ketukan C dan C ++! :-)

print'abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcba'

Versi "Pintar" di Lua

129 karakter

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

Berputar:

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

C - 163 135 karakter

Ini tidak memenuhi persyaratan karena memiliki lebih dari 104 karakter, tapi itu menyenangkan untuk dibuat. Mungkin seseorang akan memiliki beberapa saran.

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

Ini mengkompilasi pada GCC 4.5.1 (yang lain belum diuji). Anda dapat menghilangkan #termasuk, mengembalikan tipe, dan deklarasi variabel! Hardcoding akan menghasilkan program yang lebih pendek, tetapi itu tidak menyenangkan.

Versi spasi putih:

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 lumpuh

Ini adalah versi hardcode lumpuh, dan itu masih tidak membuat potongan.

main(){puts("abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcba");}
Casey
sumber
Gunakan puts()printf sebagai gantinya dalam kasus kedua - 2 karakter kurang.
Alexander Gladysh
Dan ganti whiledengan puts(a);dalam kasus pertama, menjatuhkan *p=a; - 138 chars bukannya 163.
Alexander Gladysh
Saran yang luar biasa! Saya benar-benar lupa puts. Berubah
Casey
2

PHP 88 byte

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

J - 69 char

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

Penjelasan:

  • (,\:~) y- Urutkan ydalam urutan menurun ( \:~), dan tambahkan ( ,) ke y.

  • x (,~|.) y- Balikkan ( |.) y, dan tambahkan itu ke depan x.

  • x F&G y- Jalankan (G y) F (G y), yaitu, lakukan Fpada hasil menerapkan Gargumen.

Jadi, bersama-sama, kita menambahkan alfabet, mundur, ke string Dvorak dan reverse-QWERTY, lalu membalikkan alfabet QWERTY / alfabet dan meletakkannya di depan Dvorak / alfabet.

algoritme hiu
sumber
2

Bash, 64

Saya sangat terlambat ke pesta, tetapi saya memiliki solusi 64 karakter. Program perlu disimpan ke disk agar berfungsi

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

Bagaimana itu bekerja:

{a..z} dan {z..a} cukup jelas, tetapi pada dasarnya itu hanya mencetak setiap karakter dalam rentang masing-masing.

$(sed 1d $0|base64) keluaran program, abaikan baris pertama, kemudian lewati itu melalui base64 encoder (seperti beberapa contoh lain telah dilakukan).

Alasannya lebih pendek dari contoh serupa lainnya ...

... karena {a..z} rentangnya lebih pendek daripada pengkodean base64, jadi saya hanya perlu mengkodekan base64 setengah string. Dan karena saya membaca data biner dari file daripada menyimpannya dalam sebuah string, saya tidak perlu melarikan diri karakter apa pun dalam kode.

Cara membuat ulang skrip ini:

Jika kode tidak menyalin / menempel dengan benar dari Stack Exchange ke editor teks Anda, kemudian jalankan yang berikut di baris perintah Anda (agnostik shell):

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

Kemudian jalankan:

bash alphabetgolf
Laurence
sumber
2

05AB1E , 25 byte

AžW.•8t”a$äJÚ₁вƒüu¯Cê•AR»

Cobalah online!

Penjelasan

A                          # Push alphabet                    
 žW                        # Push qwerty string
   .•8t”a$äJÚ₁вƒüu¯Cê•     # Push compressed dvorak string
                      AR   # Push reversed alphabet
                         » # Join entire stack with newlines
Wisław
sumber
1

C ++

Agak menyedihkan ketika cara terpendek untuk melakukan sesuatu dalam suatu bahasa adalah dengan meng-hard-code-nya.

#include <iostream>

int main()
{
 std::cout<<"abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcba";
}
John
sumber
Anda tidak perlu menampilkan umpan baris.
Lowjacker
@Rendah: Doh! Saya lupa menghapusnya ketika saya mengambil jeda baris saya menyadari saya tidak perlu. Terima kasih telah menunjukkannya.
John
Ini adalah solusi yang sangat jelas, dan melampaui persyaratan panjang maksimum.
Peter Olson
std::coutlebih pendek dari itu using namespace std, dan Anda dapat melewati void.
Alexander Gladysh
@ Alex: Terima kasih telah menunjukkan itu.
John
1

J (77)

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

Memotong 3 karakter dengan menggunakan variabel:

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

Memotong 2 karakter lagi dengan menggunakan pendekatan level nilai:

(|.a),~t,~a=./:~26{.t=.'qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz'
Gregory Higley
sumber
1

Haskell (95)

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

Perl (51)

Tidak ada aturan yang mengatakan saya tidak bisa.

use LWP::Simple;print get("http://bit.ly/fGkflf");
marinus
sumber
1
Lihat daftar celah standar .
boboquack
1

Q (68)

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

Output:

"abcdefghijklmnopqrstuvwxyzqwertyuiopasdfghjklzxcvbnmpyfg     
crlaoeuidhtnsqjkxbmwvzzyxwvutsrqponmlkjihgfedcba"

Mencoba menemukan perbaikan pada pengkodean keras dua tengah tetapi tidak datang dengan satu.

sinedcm
sumber
1

K - 69 char

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

Penjelasan:

  • 26#a:- Tetapkan dua tata letak keyboard ke a, dan kemudian ambil 26 karakter pertama.

  • b:a@<- Sortir adan tetapkan itu ke b: <memberikan permutasi untuk urutan naik, dan @memungkinkan kami mengindeks auntuk mengurutkannya.

  • b,a,|- Tambahkan berturut-turut b, lalu a, lalu kebalikan ( |) dari b.

algoritme hiu
sumber
1

Pyth, 57

G"qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz"VG

Alfabet, string, alfabet terbalik. G adalah alfabet. Cetak tersirat.

isaacg
sumber
1

Dyalog APL , 60 byte

⎕A'QWERTYUIOPASDFGHJKLZXCVBNMPYFGCRLAOEUIDHTNSQJKXBMWVZ',⌽⎕A

Cetakan:

  ABCDEFGHIJKLMNOPQRSTUVWXYZ  QWERTYUIOPASDFGHJKLZXCVBNMPYFGCRLAOEUIDHTNSQJKXBMWVZ ZYXWVUTSRQPONMLKJIHGFEDCBA

Yang diizinkan sesuai OP:

Outputnya tidak peka terhadap huruf besar-kecil, dan Anda dapat menambahkan atau menghilangkan baris atau spasi baru di mana pun Anda inginkan.

Adm
sumber
1

Jelly, 36 byte (tidak bersaing)

Øa;Øq;“pyfgcrlaoeuidhtnsqjkxbmwvz”;U

Cobalah online!

Penjelasan:

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

05AB1E , 60 59 byte

AÂ"qwertyuiopasdfghjklzxcvbnm""pyfgcrlaoeuidhtnsqjkxbmwvz"»

Cobalah online!

- Mendorong alfabet bercabang.

"qwertyuiopasdfghjklzxcvbnm""pyfgcrlaoeuidhtnsqjkxbmwvz" - Mendorong qwerty dan drovak.

» - Mencetak tumpukan.

05AB1E , 57 byte (Jika Anda tidak peduli tentang acak \ n)

AÂ"qwertyuiopasdfghjklzxcvbnmpyfgcrlaoeuidhtnsqjkxbmwvz"»

Cobalah online!

Guci Gurita Ajaib
sumber
Pada contoh pertama, Anda dapat menyimpan byte dengan mengganti ""dengan baris baru.
Neil A.