Bảng chữ cái kim cương


31

Bạn đã nhìn thấy tam giác bảng chữ cái tuyệt vời , sự trả thù của tam giác bảng chữ cái và bây giờ là thời gian để trả thù sự trả thù của tam giác bảng chữ cái!

Giới thiệu ...

PHONG CÁCH ALPHABET!

Nhiệm vụ của bạn là xuất văn bản chính xác này, chữ thường / chữ hoa không quan trọng, mặc dù dòng mới có:

bcdefghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihgfedcb
cdefghijklmnopqrstuvwxyzabazyxwvutsrqponmlkjihgfedc
defghijklmnopqrstuvwxyzabcbazyxwvutsrqponmlkjihgfed
efghijklmnopqrstuvwxyzabcdcbazyxwvutsrqponmlkjihgfe
fghijklmnopqrstuvwxyzabcdedcbazyxwvutsrqponmlkjihgf
ghijklmnopqrstuvwxyzabcdefedcbazyxwvutsrqponmlkjihg
hijklmnopqrstuvwxyzabcdefgfedcbazyxwvutsrqponmlkjih
ijklmnopqrstuvwxyzabcdefghgfedcbazyxwvutsrqponmlkji
jklmnopqrstuvwxyzabcdefghihgfedcbazyxwvutsrqponmlkj
klmnopqrstuvwxyzabcdefghijihgfedcbazyxwvutsrqponmlk
lmnopqrstuvwxyzabcdefghijkjihgfedcbazyxwvutsrqponml
mnopqrstuvwxyzabcdefghijklkjihgfedcbazyxwvutsrqponm
nopqrstuvwxyzabcdefghijklmlkjihgfedcbazyxwvutsrqpon
opqrstuvwxyzabcdefghijklmnmlkjihgfedcbazyxwvutsrqpo
pqrstuvwxyzabcdefghijklmnonmlkjihgfedcbazyxwvutsrqp
qrstuvwxyzabcdefghijklmnoponmlkjihgfedcbazyxwvutsrq
rstuvwxyzabcdefghijklmnopqponmlkjihgfedcbazyxwvutsr
stuvwxyzabcdefghijklmnopqrqponmlkjihgfedcbazyxwvuts
tuvwxyzabcdefghijklmnopqrsrqponmlkjihgfedcbazyxwvut
uvwxyzabcdefghijklmnopqrstsrqponmlkjihgfedcbazyxwvu
vwxyzabcdefghijklmnopqrstutsrqponmlkjihgfedcbazyxwv
wxyzabcdefghijklmnopqrstuvutsrqponmlkjihgfedcbazyxw
xyzabcdefghijklmnopqrstuvwvutsrqponmlkjihgfedcbazyx
yzabcdefghijklmnopqrstuvwxwvutsrqponmlkjihgfedcbazy
zabcdefghijklmnopqrstuvwxyxwvutsrqponmlkjihgfedcbaz
abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba
bcdefghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihgfedcb
abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba
zabcdefghijklmnopqrstuvwxyxwvutsrqponmlkjihgfedcbaz
yzabcdefghijklmnopqrstuvwxwvutsrqponmlkjihgfedcbazy
xyzabcdefghijklmnopqrstuvwvutsrqponmlkjihgfedcbazyx
wxyzabcdefghijklmnopqrstuvutsrqponmlkjihgfedcbazyxw
vwxyzabcdefghijklmnopqrstutsrqponmlkjihgfedcbazyxwv
uvwxyzabcdefghijklmnopqrstsrqponmlkjihgfedcbazyxwvu
tuvwxyzabcdefghijklmnopqrsrqponmlkjihgfedcbazyxwvut
stuvwxyzabcdefghijklmnopqrqponmlkjihgfedcbazyxwvuts
rstuvwxyzabcdefghijklmnopqponmlkjihgfedcbazyxwvutsr
qrstuvwxyzabcdefghijklmnoponmlkjihgfedcbazyxwvutsrq
pqrstuvwxyzabcdefghijklmnonmlkjihgfedcbazyxwvutsrqp
opqrstuvwxyzabcdefghijklmnmlkjihgfedcbazyxwvutsrqpo
nopqrstuvwxyzabcdefghijklmlkjihgfedcbazyxwvutsrqpon
mnopqrstuvwxyzabcdefghijklkjihgfedcbazyxwvutsrqponm
lmnopqrstuvwxyzabcdefghijkjihgfedcbazyxwvutsrqponml
klmnopqrstuvwxyzabcdefghijihgfedcbazyxwvutsrqponmlk
jklmnopqrstuvwxyzabcdefghihgfedcbazyxwvutsrqponmlkj
ijklmnopqrstuvwxyzabcdefghgfedcbazyxwvutsrqponmlkji
hijklmnopqrstuvwxyzabcdefgfedcbazyxwvutsrqponmlkjih
ghijklmnopqrstuvwxyzabcdefedcbazyxwvutsrqponmlkjihg
fghijklmnopqrstuvwxyzabcdedcbazyxwvutsrqponmlkjihgf
efghijklmnopqrstuvwxyzabcdcbazyxwvutsrqponmlkjihgfe
defghijklmnopqrstuvwxyzabcbazyxwvutsrqponmlkjihgfed
cdefghijklmnopqrstuvwxyzabazyxwvutsrqponmlkjihgfedc
bcdefghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihgfedcb

Đây là môn đánh gôn, chiến thắng bytecount thấp nhất.

Quy tắc:

  1. Sơ hở tiêu chuẩn là không được phép.
  2. a phải là trung tâm của bảng chữ cái kim cương.

11
Thử thách đẹp. Cá nhân tôi nghĩ rằng sẽ có ý nghĩa hơn nếu các góc avà trung tâm làz
ETHproductions

4
@ETHproductions Tôi muốn làm khó hơn cho các ngôn ngữ chơi gôn có thể đẩy bảng chữ cái;). Mặc dù tôi nghi ngờ nó khó hơn nhiều.
Bạch tuộc ma thuật Urn

@carusocomputing Một vòng xoay trái sẽ làm điều đó. Ví dụ, .<sẽ làm điều đó trong Pyth: .<S5 1sẽ dẫn đến [2, 3, 4, 5, 1]. Nó giống như .<[1 2 3 4 5)1. Không chắc chắn cho kim cương, mặc dù.
Erik the Outgolfer

@EriktheGolfer Tôi nhận ra, có một số cách thông minh hơn để làm điều đó, như thu gọn sự thay đổi trong một thời gian. Bản thân viên kim cương cần phải dịch chuyển, do đó, có nhiều cách để kết hợp sự dịch chuyển ban đầu trong các lần lặp kim cương thực tế. Đó là một phần có chủ ý của thử thách để xem ai đã tối ưu hóa vòng lặp của họ.
Bạch tuộc ma thuật Urn

@carusocomputing Ý tôi là về bchữ cái đầu thay vì a. Tất nhiên thay đổi là rất quan trọng.
Erik the Outgolfer

Câu trả lời:


16

05AB1E , 13 12 byte

A27FÀDûˆ}¯û»

Hãy thử trực tuyến!

Giải trình

A              # push alphabet
 27F           # 27 times do
    À          # rotate alphabet left
     Dû        # create a palendromized copy
       ˆ       # add to global list
        }      # end loop
         ¯     # push global list
          û    # palendromize list
           »   # merge list on newline
               # implicit output

Có lẽ có thể lưu một byte bằng cách sử dụng các thanh ghi và g để tính độ dài của bảng chữ cái thay vì sao chép nó.
Bạch tuộc ma thuật Urn

@carusocomputing: Trừ khi tôi làm sai (cứ tự nhiên giáo dục tôi nếu đó là trường hợp) Tôi đã kết thúc ở tuổi 13 khi làm điều đó. Tôi đã quản lý để lưu một byte với danh sách toàn cầu mặc dù.
Emigna

A©gF®À©û})û»là những gì tôi đã suy nghĩ. Không bao giờ bạn làm sai! Tôi đã học được tất cả những gì tôi biết từ việc xem bạn heh. Danh sách toàn cầu là cùng một ý tưởng cơ bản.
Bạch tuộc ma thuật Urn

1
Bây giờ bạn đang gắn liền với tôi. : 3
Oliver Ni

1
@Oliver: Thật vậy! Và với 2 cách tiếp cận khác nhau trong cùng một ngôn ngữ :)
Emigna

27

Vim 62 , 60 tổ hợp phím

:se ri|h<_<cr>jjYZZPqqx$pYpq26@qdjyH:g/^/m0<cr>VP:%norm DPA<C-v><C-r>"<C-v><esc>x<cr>

Dựa trên cảm hứng từ câu trả lời vim tuyệt vời của Lynn để lấy ý tưởng đánh cắp bảng chữ cái từ các tài liệu trợ giúp.

Bạn có thể xem nó xảy ra trong thời gian thực khi tôi đấu tranh để nhớ đúng trình tự gõ phím!

nhập mô tả hình ảnh ở đây

Lưu ý rằng gif này hơi lỗi thời vì nó tạo ra đầu ra sai và tôi đã không có mặt để ghi lại nó.


Tôi đã thử chương trình này và nhận được điều này .
LegionMammal978

Xin vui lòng rerecord ty
ASCII-chỉ

8

MATL , 14 byte

2Y226Zv27Zv!+)

Hãy thử trực tuyến!

2Y2     % Push string 'abc...z'
26Zv    % Push symmetric range [1 2 ... 25 26 25 ... 2 1]
27Zv    % Push symmetric range [1 2 ... 25 26 27 26 25 ... 2 1]
!       % Transpose into a column
+       % Addition with broadcast. Gives a matrix of all pairwise additions:
        % [  2  3 ... 26 27 26 ...  3  2
             3  4 ... 27 28 27 ...  4  3
             ...
            27 28 ... 51 52 51 ... 28 27
            28 29 ... 52 53 52 ... 29 28
            27 28 ... 51 52 51 ... 28 27
             ...
             2  3 ... 26 27 26 ...  3  2 ]
)       % Index modularly into the string. Display implicitly

6

PHP, 129 byte

for(;++$i<27;)$o.=($s=($f=substr)($r=join(range(a,z)),$i,26-$i)).$t.strrev($s.$t=$f($r,0,$i))."\n";echo$o.$f($o,0,51).strrev($o);

syntax error, unexpected '(' on line 1Phiên bản php nào?
Tschallacka

1
@Tschallacka PHP> 7 trước khi bạn có thể viết for($f=substr;$f($r=join(range(a,z)),$i,26-$i))thay vì ($f=substr)($r=join(range(a,z)),$i,26-$i))để tránh lỗi
Jörg Hülsermann

5

Haskell, 75 byte

g=(++)<*>reverse.init 
unlines$g$g.take 26.($cycle['a'..'z']).drop<$>[1..27]

Làm thế nào nó hoạt động:

g=(++)<*>reverse.init    -- helper function that takes a list and appends the
                         -- reverse of the list with the first element dropped, e.g.
                         -- g "abc"  -> "abcba"

             <$>[1..27]  -- map over the list [1..27] the function that
           drop          -- drops that many elements from
    ($cycle['a'..'z'])   -- the infinite cycled alphabet and
   take 26               -- keeps the next 26 chars and
  g                      -- appends the reverse of itself

                         -- now we have the first 27 lines

 g                       -- do another g to append the lower half
unlines                  -- join with newlines

5

C, 76 byte

Chức năng, được gọi như dưới đây. In chữ in hoa.

f(i){for(i=2756;--i;)putchar(i%52?90-(abs(i%52-26)+abs(i/52-26)+25)%26:10);}

//call like this
main(){f();}

Cách tiếp cận đơn giản, thêm khoảng cách x và y từ tâm hình vuông, cộng với độ lệch 25 cho aphần giữa, lấy modulo 26 và trừ từ 90mã ASCII cho Z. Trong đó i%52== 0 một ASCII dòng mới 10được in.


Phần bù của bạn +25giống như -1trong modulo 26
Karl Napf

2
@KarlNapf C không triển khai modulo các số âm theo cách các nhà toán học làm. -1%26trong C là -1, không phải 25. Kết quả là một [ở trung tâm thay vì dự kiến A. Dù sao cũng cảm ơn, bạn đã có thể nói đúng bằng một ngôn ngữ như Ruby, nơi -1%26bằng 25.
Level River St

5

R, 71 byte

cat(letters[outer(c(1:27,26:1),c(0:25,24:0),"+")%%26+1],sep="",fill=53)

outertạo một ma trận với các chỉ số của các chữ cái, letters[...]sau đó tạo một vectơ với các chữ cái chính xác. cat(...,sep="",fill=53)Sau đó in ra với định dạng mong muốn.


1
Đẹp quá Bằng cách nào đó tôi đã quên mất filllựa chọn cho cat. Cách tuyệt vời để in ma trận định dạng.
Billywob

4

Thạch , 13 byte

Øaṙ1ṭṙJ$ŒBŒḄY

Hãy thử trực tuyến!

Giải trình

Øaṙ1ṭṙJ$ŒBŒḄY  Main link. No arguments
Øa             Get the lowercase alphabet
  ṙ1           Rotate left by 1
    ṭ          Append to
       $       Monadic chain
      J          Indices of the alphabet [1, 2, ..., 26]
     ṙ           Rotate the alphabet by each
        ŒB     Bounce each rotation
          ŒḄ   Bounce the rotations
            Y  Join with newlines and print implicitly

Øaṙ'JŒBŒḄYcho 10 :)
Jonathan Allan

@Jonathan ALLan Cảm ơn nhưng điều đó thiếu phần giữa, đó là lý do tại sao tôi phải làm điều đó ṙ1ṭ. Cũng ØaṙJŒBŒḄYlà tốt, bạn không cần nhanh chóng kể từ khi nó vectorizes ở bên phải 0
dặm

Hoàn toàn bỏ lỡ rằng viên kim cương không hoàn hảo! Ồ tốt ...
Jonathan Allan

4

Thạch, 11 byte

27RØaṙŒḄŒBY

Giải trình:

27R          range of 1...27
   Øa        the alphabet
     ṙ       rotate
      ŒḄŒB   bounce in both dimensions
          Y  join on newline

3

Python 2, 96 85 byte

In phiên bản chữ hoa (tiết kiệm 1 byte).

R=range
for i in R(53):print''.join(chr(90-(abs(j-25)+abs(i-26)-1)%26)for j in R(51))

giải pháp trước đây với sự giúp đỡ từ cá bùn

s="abcdefghijklmnopqrstuvwxyz"*3
for i in range(53):j=min(i,52-i);print s[j+1:j+27]+s[j+25:j:-1]

3
không chỉ gõ bảng chữ cái ít ký tự?
Màu xanh

3

Perl, 77 byte

Đòi hỏi -E không có chi phí thêm.

Cách tiếp cận khá chuẩn ... Tôi không thích các cuộc gọi đảo ngược Tôi nghĩ rằng có khả năng cách tiếp cận dựa trên toán học nhiều hơn vào điều này, sẽ thấy cách tôi tiếp tục!

@a=((a..z)x3)[$_..$_+26],$a=pop@a,(say@a,$a,reverse@a)for 1..26,reverse 1..25

Sử dụng

perl -E '@a=((a..z)x3)[$_..$_+26],$a=pop@a,(say@a,$a,reverse@a)for 1..26,reverse 1..25'

Bạn có thể lưu 1 byte bằng cách xóa khoảng trắng sau khi reversevào reverse 1..25. Các forcần nó mặc dù.
simbabque

1
@simbabque có thể đó là một phiên bản Perl, nhưng reverse1..25kết quả là 0..25. Tôi đang chạy 5.18.2...
Dom Hastings

Bạn đúng. Bởi vì bareword reverse1là không xác định. Có ý nghĩa.
simbabque

3

JavaScript (ES6), 97 96 byte

Đã lưu 1 byte nhờ @ user81655

R=(n,s=25,c=(n%26+10).toString(36))=>s?c+R(n+1,s-1)+c:c
C=(n=1,r=R(n))=>n<27?r+`
${C(n+1)}
`+r:r

Hai hàm đệ quy; Clà một trong đó đưa ra văn bản chính xác. Hãy thử nó ở đây:


@ user81655 Tôi luôn quên về phép nội suy chuỗi khi có dòng mới: P
ETHproductions

3

Python 3, 119 byte

Tôi đã cố gắng khai thác hai trục đối xứng của viên kim cương, nhưng điều này cuối cùng lại dài dòng hơn giải pháp của Karl Napf .

A='abcdefghijklmnopqrstuvwxyz'
D=''
for k in range(1,27):
 D+=A[k:]+A[:k]
 D+=D[-2:-27:-1]+'\n'
print(D+D[:51]+D[::-1])

Một giải pháp tốt dù sao! Bạn có thể cắt giảm 3 byte bằng cách viết vòng lặp for thành 1 dòng:for k in range(1,27):D+=A[k:]+A[:k];D+=D[-2:-27:-1]+'\n'
FlipTack

rút ngắn lại: thay thế A bằng 'bcdefghijklmnopqrstuvwxyza'và thay thế range(1,27)bằng range(26). Số byte của tôi hiện là 114
FlipTack

3

Haskell, 67 66 byte

unlines[[toEnum$mod(-abs j-abs i)26+97|j<-[-25..25]]|i<-[-26..26]]

3

C, 252 byte

#define j q[y]
#define k(w,v) (v<'z')?(w=v+1):(w=97)
char q[28][52],d;main(){int y,x=1;y=1;j[0]=98;j[50]=98;for(;y<27;y++){for(;x<26;x++){(x<1)?(k(d,q[y-1][50])):(k(d,j[x-1]));j[50-x]=d;j[x]=d;}x=0;j[51]=0;puts(j);}strcpy(j,q[1]);for(;y;y--)puts(j);}

Định dạng, phiên bản mở rộng vĩ mô, hy vọng dễ hiểu hơn:

#define j q[y]
#define k(w,v) (v<'z')?(w=v+1):(w=97)
char q[28][52],d;
main(){
int y,x=1;
y=1;
q[1][0]=98;q[1][50]=98;
//98 takes one less byte to type than the equivalent 'b'
for(;y<27;y++){
    for(;x<26;x++){
        (x<1)?
            (k(d,q[y-1][50]))
            :(k(d,q[y][x-1]));
        q[y][50-x]=d;
        q[y][x]=d;
        }
    x=0;
    q[y][51]=0;
    puts(q[y]);
    }
strcpy(q[y],q[1]);
for(;y;y--)puts(q[y]);
}

Tôi biết điều này không thể thắng, nhưng tôi đã rất vui khi thử. Đây là lần đầu tiên tôi thử chơi golf.


Chào mừng bạn đến với môn đánh gôn, nó gây nghiện haha;).
Bạch tuộc ma thuật Urn

3

Hàng loạt, 255 byte

@echo off
set l=abcdefghijklmnopqrstuvwxyz
set r=yxwvutsrqponmlkjihgfedcba
for /l %%i in (1,1,27)do call:u
for /l %%i in (1,1,25)do call:l
:l
set r=%r:~2%%l:~-1%.
set l=%l:~-2%%l:~0,-2%
:u
set r=%l:~-1%%r:~0,-1%
set l=%l:~1%%l:~0,1%
echo %l%%r%

Giải thích: Chương trình con uxoay bảng chữ cái ra ngoài bằng một chữ cái từ trung tâm, đây là mẫu được sử dụng ở nửa trên của đầu ra mong muốn. Chương trình con lxoay bảng chữ cái vào trong bằng hai chữ cái. Sau đó, nó rơi vào uchương trình con, đạt được một chữ cái quay vào trong hiệu quả. Cuối cùng, dòng cuối cùng được in bằng cách cho phép mã rơi vào lchương trình con.


2

Pyke, 23 22 21 byte

GV'th+jj_t+j)K]0n'JOX

Hãy thử nó ở đây!

GV          )         - repeat 26 times, initially push alphabet.
  'th+                -  push tos[1:]+tos[0]
      j               -  j = tos
       j              -  push j
        _t+           -  push pop+reversed(pop)[1:]
           j          -  push j
             K        - pop
              ]0      - list(stack)
                n'JOX - print "\n".join(^),
                      - splat ^[:-1]

2

C ++, 191 179 166 165 byte

-12 byte nhờ Kevin Cruijssen
-14 byte nhờ Zacharý

#include<iostream>
#define C j;)std::cout<<char(97+(d+j
int main(){for(int i=0,j,d=1;i<53;d+=i++/26?-1:1){for(j=0;26>C++)%26);for(j=24;0<=C--)%26);std::cout<<'\n';}}

1
Bạn có thể lưu 12 byte như thế này:#include<iostream> int main(){for(int i=0,j,d=1;i<53;d+=i++/26?-1:1){for(j=0;j<26;)std::cout<<char((j+++d)%26+97);for(j=24;j>=0;)std::cout<<char((j--+d)%26+97);std::cout<<'\n';};}
Kevin Cruijssen

Dang nó Kevin, ya ninja'd tôi.
Zacharý

@KevinCruijssen Cảm ơn bạn đã giúp đỡ. Nhân tiện, mã của bạn trong bình luận chứa các ký tự unicode không thể in được.
HatsuPulumKun

@HatsuPulumKun Đó là điều gì đó tự động xảy ra trong các bình luận Tôi sợ. Thực sự khá khó chịu khi bạn cố gắng sao chép-dán mã từ nó .. :)
Kevin Cruijssen

2
Bạn có thể lạm dụng macro bằng cách thêm cái này : #define C j;)std::cout<<char(97+(d+j, và sau đó thay đổi dòng cuối cùng thành cái này:int main(){for(int i=0,j,d=1;i<53;d+=i++/26?-1:1){for(j=0;26>C++)%26);for(j=24;0<=C--)%26);std::cout<<'\n';};}
Zacharý

2

Than , 24 21 byte

-3 byte chỉ nhờ ASCII.

F²⁷«P✂×β³⊕ι⁺ι²⁷↓»‖B↓→

Hãy thử trực tuyến! Liên kết là phiên bản dài dòng.

... Tôi cần phải làm việc trên Char than-fu của mình. : P



Bây giờ tôi phát hiện ra rằng đối số thứ tư Slicelà tùy chọn. > _>
hoàn toàn là

Tất cả (có, tất cả bốn) đối số là tùy chọn
ASCII

wat, niladic Slicethậm chí còn làm gì?
hoàn toàn là

2
Oh chờ nvm yeah đối số đầu tiên là bắt buộc: P
ASCII - chỉ

1

JavaScript (ES6), 128 115 114 byte

a='abcdefghijklmnopqrstuvwxyz'
for(o=[i=27];i--;)o[26-i]=o[26+i]=(a=(p=a.slice(1))+a[0])+[...p].reverse().join``
o

1

Groovy - 103 97 byte

Tôi nhận ra có nhiều cách thông minh hơn để làm việc này nhưng ...

{t = ('a' .. 'z'). tham gia (); q = {it [-2..0]}; c = []; 27.times {t = t [1 ..- 1] + t [0]; c << t + q (t)}; (c + q (c)). tham gia ('\ n')}

Khi chạy kết quả của kịch bản là câu trả lời được yêu cầu.

(Nhờ vào carusocomputing cho mẹo tiết kiệm 7 byte).

Cập nhật ví dụ phù hợp trên:

Xem http://ideone.com/MkQeoW


Thay vì vòng lặp for, bạn có thể sử dụng 27.times(){}và lưu 7 byte;).
Bạch tuộc ma thuật Urn

1

Vợt 293 byte

(let*((ls list->string)(rr reverse)(sr(λ(s)(ls(rr(string->list s))))))(let p((s(ls(for/list((i(range 97 123)))(integer->char i))))
(n 0)(ol'()))(let*((c(string-ref s 0))(ss(substring s 1 26))(s(string-append ss(string c)(sr ss))))(if(< n 53)(p s(+ 1 n)(cons s ol))
(append(rr ol)(cdr ol))))))

Ung dung:

(define (f)
  (define (sr s)           ; sub-fn reverse string;
    (list->string
     (reverse
      (string->list s))))
  (let loop ((s
              (list->string
               (for/list
                   ((i
                     (range 97 123)))
                 (integer->char i))))
             (n 0)
             (ol '()))
    (define c (string-ref s 0))
    (define ss (substring s 1 26))
    (set! s (string-append
             ss 
             (string c)
             (sr ss)))
    (if (< n 53)
        (loop s (add1 n) (cons s ol))
        (append (reverse ol) (rest ol)))))

Kiểm tra:

(f)

Đầu ra:

'("bcdefghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihgfedcb"
  "cdefghijklmnopqrstuvwxyzabazyxwvutsrqponmlkjihgfedc"
  "defghijklmnopqrstuvwxyzabcbazyxwvutsrqponmlkjihgfed"
  "efghijklmnopqrstuvwxyzabcdcbazyxwvutsrqponmlkjihgfe"
  "fghijklmnopqrstuvwxyzabcdedcbazyxwvutsrqponmlkjihgf"
  "ghijklmnopqrstuvwxyzabcdefedcbazyxwvutsrqponmlkjihg"
  "hijklmnopqrstuvwxyzabcdefgfedcbazyxwvutsrqponmlkjih"
  "ijklmnopqrstuvwxyzabcdefghgfedcbazyxwvutsrqponmlkji"
  "jklmnopqrstuvwxyzabcdefghihgfedcbazyxwvutsrqponmlkj"
  "klmnopqrstuvwxyzabcdefghijihgfedcbazyxwvutsrqponmlk"
  "lmnopqrstuvwxyzabcdefghijkjihgfedcbazyxwvutsrqponml"
  "mnopqrstuvwxyzabcdefghijklkjihgfedcbazyxwvutsrqponm"
  "nopqrstuvwxyzabcdefghijklmlkjihgfedcbazyxwvutsrqpon"
  "opqrstuvwxyzabcdefghijklmnmlkjihgfedcbazyxwvutsrqpo"
  "pqrstuvwxyzabcdefghijklmnonmlkjihgfedcbazyxwvutsrqp"
  "qrstuvwxyzabcdefghijklmnoponmlkjihgfedcbazyxwvutsrq"
  "rstuvwxyzabcdefghijklmnopqponmlkjihgfedcbazyxwvutsr"
  "stuvwxyzabcdefghijklmnopqrqponmlkjihgfedcbazyxwvuts"
  "tuvwxyzabcdefghijklmnopqrsrqponmlkjihgfedcbazyxwvut"
  "uvwxyzabcdefghijklmnopqrstsrqponmlkjihgfedcbazyxwvu"
  "vwxyzabcdefghijklmnopqrstutsrqponmlkjihgfedcbazyxwv"
  "wxyzabcdefghijklmnopqrstuvutsrqponmlkjihgfedcbazyxw"
  "xyzabcdefghijklmnopqrstuvwvutsrqponmlkjihgfedcbazyx"
  "yzabcdefghijklmnopqrstuvwxwvutsrqponmlkjihgfedcbazy"
  "zabcdefghijklmnopqrstuvwxyxwvutsrqponmlkjihgfedcbaz"
  "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba"
  "bcdefghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihgfedcb"
  "cdefghijklmnopqrstuvwxyzabazyxwvutsrqponmlkjihgfedc"
  "defghijklmnopqrstuvwxyzabcbazyxwvutsrqponmlkjihgfed"
  "efghijklmnopqrstuvwxyzabcdcbazyxwvutsrqponmlkjihgfe"
  "fghijklmnopqrstuvwxyzabcdedcbazyxwvutsrqponmlkjihgf"
  "ghijklmnopqrstuvwxyzabcdefedcbazyxwvutsrqponmlkjihg"
  "hijklmnopqrstuvwxyzabcdefgfedcbazyxwvutsrqponmlkjih"
  "ijklmnopqrstuvwxyzabcdefghgfedcbazyxwvutsrqponmlkji"
  "jklmnopqrstuvwxyzabcdefghihgfedcbazyxwvutsrqponmlkj"
  "klmnopqrstuvwxyzabcdefghijihgfedcbazyxwvutsrqponmlk"
  "lmnopqrstuvwxyzabcdefghijkjihgfedcbazyxwvutsrqponml"
  "mnopqrstuvwxyzabcdefghijklkjihgfedcbazyxwvutsrqponm"
  "nopqrstuvwxyzabcdefghijklmlkjihgfedcbazyxwvutsrqpon"
  "opqrstuvwxyzabcdefghijklmnmlkjihgfedcbazyxwvutsrqpo"
  "pqrstuvwxyzabcdefghijklmnonmlkjihgfedcbazyxwvutsrqp"
  "qrstuvwxyzabcdefghijklmnoponmlkjihgfedcbazyxwvutsrq"
  "rstuvwxyzabcdefghijklmnopqponmlkjihgfedcbazyxwvutsr"
  "stuvwxyzabcdefghijklmnopqrqponmlkjihgfedcbazyxwvuts"
  "tuvwxyzabcdefghijklmnopqrsrqponmlkjihgfedcbazyxwvut"
  "uvwxyzabcdefghijklmnopqrstsrqponmlkjihgfedcbazyxwvu"
  "vwxyzabcdefghijklmnopqrstutsrqponmlkjihgfedcbazyxwv"
  "wxyzabcdefghijklmnopqrstuvutsrqponmlkjihgfedcbazyxw"
  "xyzabcdefghijklmnopqrstuvwvutsrqponmlkjihgfedcbazyx"
  "yzabcdefghijklmnopqrstuvwxwvutsrqponmlkjihgfedcbazy"
  "zabcdefghijklmnopqrstuvwxyxwvutsrqponmlkjihgfedcbaz"
  "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba"
  "bcdefghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihgfedcb"
  "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba"
  "zabcdefghijklmnopqrstuvwxyxwvutsrqponmlkjihgfedcbaz"
  "yzabcdefghijklmnopqrstuvwxwvutsrqponmlkjihgfedcbazy"
  "xyzabcdefghijklmnopqrstuvwvutsrqponmlkjihgfedcbazyx"
  "wxyzabcdefghijklmnopqrstuvutsrqponmlkjihgfedcbazyxw"
  "vwxyzabcdefghijklmnopqrstutsrqponmlkjihgfedcbazyxwv"
  "uvwxyzabcdefghijklmnopqrstsrqponmlkjihgfedcbazyxwvu"
  "tuvwxyzabcdefghijklmnopqrsrqponmlkjihgfedcbazyxwvut"
  "stuvwxyzabcdefghijklmnopqrqponmlkjihgfedcbazyxwvuts"
  "rstuvwxyzabcdefghijklmnopqponmlkjihgfedcbazyxwvutsr"
  "qrstuvwxyzabcdefghijklmnoponmlkjihgfedcbazyxwvutsrq"
  "pqrstuvwxyzabcdefghijklmnonmlkjihgfedcbazyxwvutsrqp"
  "opqrstuvwxyzabcdefghijklmnmlkjihgfedcbazyxwvutsrqpo"
  "nopqrstuvwxyzabcdefghijklmlkjihgfedcbazyxwvutsrqpon"
  "mnopqrstuvwxyzabcdefghijklkjihgfedcbazyxwvutsrqponm"
  "lmnopqrstuvwxyzabcdefghijkjihgfedcbazyxwvutsrqponml"
  "klmnopqrstuvwxyzabcdefghijihgfedcbazyxwvutsrqponmlk"
  "jklmnopqrstuvwxyzabcdefghihgfedcbazyxwvutsrqponmlkj"
  "ijklmnopqrstuvwxyzabcdefghgfedcbazyxwvutsrqponmlkji"
  "hijklmnopqrstuvwxyzabcdefgfedcbazyxwvutsrqponmlkjih"
  "ghijklmnopqrstuvwxyzabcdefedcbazyxwvutsrqponmlkjihg"
  "fghijklmnopqrstuvwxyzabcdedcbazyxwvutsrqponmlkjihgf"
  "efghijklmnopqrstuvwxyzabcdcbazyxwvutsrqponmlkjihgfe"
  "defghijklmnopqrstuvwxyzabcbazyxwvutsrqponmlkjihgfed"
  "cdefghijklmnopqrstuvwxyzabazyxwvutsrqponmlkjihgfedc"
  "bcdefghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihgfedcb"
  "abcdefghijklmnopqrstuvwxyzyxwvutsrqponmlkjihgfedcba"
  "zabcdefghijklmnopqrstuvwxyxwvutsrqponmlkjihgfedcbaz"
  "yzabcdefghijklmnopqrstuvwxwvutsrqponmlkjihgfedcbazy"
  "xyzabcdefghijklmnopqrstuvwvutsrqponmlkjihgfedcbazyx"
  "wxyzabcdefghijklmnopqrstuvutsrqponmlkjihgfedcbazyxw"
  "vwxyzabcdefghijklmnopqrstutsrqponmlkjihgfedcbazyxwv"
  "uvwxyzabcdefghijklmnopqrstsrqponmlkjihgfedcbazyxwvu"
  "tuvwxyzabcdefghijklmnopqrsrqponmlkjihgfedcbazyxwvut"
  "stuvwxyzabcdefghijklmnopqrqponmlkjihgfedcbazyxwvuts"
  "rstuvwxyzabcdefghijklmnopqponmlkjihgfedcbazyxwvutsr"
  "qrstuvwxyzabcdefghijklmnoponmlkjihgfedcbazyxwvutsrq"
  "pqrstuvwxyzabcdefghijklmnonmlkjihgfedcbazyxwvutsrqp"
  "opqrstuvwxyzabcdefghijklmnmlkjihgfedcbazyxwvutsrqpo"
  "nopqrstuvwxyzabcdefghijklmlkjihgfedcbazyxwvutsrqpon"
  "mnopqrstuvwxyzabcdefghijklkjihgfedcbazyxwvutsrqponm"
  "lmnopqrstuvwxyzabcdefghijkjihgfedcbazyxwvutsrqponml"
  "klmnopqrstuvwxyzabcdefghijihgfedcbazyxwvutsrqponmlk"
  "jklmnopqrstuvwxyzabcdefghihgfedcbazyxwvutsrqponmlkj"
  "ijklmnopqrstuvwxyzabcdefghgfedcbazyxwvutsrqponmlkji"
  "hijklmnopqrstuvwxyzabcdefgfedcbazyxwvutsrqponmlkjih"
  "ghijklmnopqrstuvwxyzabcdefedcbazyxwvutsrqponmlkjihg"
  "fghijklmnopqrstuvwxyzabcdedcbazyxwvutsrqponmlkjihgf"
  "efghijklmnopqrstuvwxyzabcdcbazyxwvutsrqponmlkjihgfe"
  "defghijklmnopqrstuvwxyzabcbazyxwvutsrqponmlkjihgfed"
  "cdefghijklmnopqrstuvwxyzabazyxwvutsrqponmlkjihgfedc"
  "bcdefghijklmnopqrstuvwxyzazyxwvutsrqponmlkjihgfedcb")

1

Bình ,21 19 byte

j+PKm+PJ.<Gd_JS27_K

Hãy thử trực tuyến!

Giải trình:

j+PKm+PJ.<Gd_JS27_K   expects no input

j                     joins on new line
 +   +                joins two strings
  P   P               prints everything but the last element
   K                  initialize K and implicitly print
    m                 for...in loop, uses d as iterator variable
       J              initialize J and implicitly print
        .<            cyclically rotate
          G           initialized to the lowercase alphabet
           d          iterating variables of m
            _    _    reverse
             J        call J
              S27     indexed range of 27
                  K   call K

1

SOGL V0.12 , 10 byte

zl{«:}«¹╬,

Hãy thử nó ở đây!

Giải trình:

z           push the lowercase alphabet
 l{  }      repeat length times
   «          put the 1st letter at the end
    :         duplicate
      «     put the 1st letter at the end (as the last thing called is duplicate)
       ¹    wrap the stack in an array
        ╬,  quad-palindromize with 1 X and Y overlap


1

Kotlin , 106 byte

{(0..52).map{i->(0..50).map{j->print((90-((Math.abs(j-25)+Math.abs(i-26)-1)+26)%26).toChar())}
println()}}

Làm đẹp

{
    (0..52).map {i->
        (0..50).map {j->
            print((90 - ((Math.abs(j - 25) + Math.abs(i - 26) - 1)+26) % 26).toChar())
        }
        println()
    }
}

Kiểm tra

var v:()->Unit =
{(0..52).map{i->(0..50).map{j->print((90-((Math.abs(j-25)+Math.abs(i-26)-1)+26)%26).toChar())}
println()}}

fun main(args: Array<String>) {
    v()
}

Dùng thử

Câu trả lời của cảng @Karl Napf


1

VBA (Excel), 116 byte

Sub a()
For i=-26To 26
For j=-25To 25
b=b & Chr(65+(52-(Abs(j)+Abs(i))) Mod 26)
Next
Debug.Print b
b=""
Next
End Sub

Theo logic của Sir Joffan. : D


1

VBA, 109 105 78 byte

Chức năng cửa sổ ngay lập tức VBE ẩn danh không có đầu vào và xuất kim cương bảng chữ cái sang cửa sổ ngay lập tức VBE.

For i=-26To 26:For j=-25To 25:?Chr(65+(52-(Abs(j)+Abs(i)))Mod 26);:Next:?:Next


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.