MATL , 14 byte
YP99Y$uj!y=sY"
Hãy thử trực tuyến!
Giải thích với một ví dụ
Biểu tượng ;
được sử dụng như dấu phân cách hàng trong ma trận. Vậy [1 2 3]
là một vectơ hàng, [1; 2; 3]
là một vectơ cột và [1 2; 3 4]
là một ma trận vuông. Cái sau cũng có thể được đại diện, cho rõ ràng, như
[1 2;
3 4]
Hãy xem xét đầu vào 2325
là một ví dụ.
YP % Push approximation of pi as a double (predefined literal)
% 3.14159265358979
99Y$ % Variable-precision arithmetic with 99 digits. Gives a string.
% The input 3.14159265358979 is recognized as representing pi
% STACK: '3.141592653589793238462 ··· 707'
u % Unique entries, keeping order of their first appearance
% STACK: '3.145926870'
j % Input line as a string
% STACK: '3.145926870', '2352'
! % Transpose
% STACK: '3.145926870', ['2'; '3';'5'; '2']
y % Duplicate the second-top element in the stack
% STACK: '3.145926870', ['2'; '3';'5'; '2'], '3.145926870'
= % Test for equality, with broadcast. This gives a matrix with
% all pairwise comparisons)
% STACK: '3.145926870', [0 0 0 0 0 0 1 0 0 0 0;
% 1 0 0 0 0 0 0 0 0 0 0;
% 0 0 0 0 1 0 0 0 0 0 0;
% 0 0 0 0 0 0 1 0 0 0 0]
s % Sum of each column
% STACK: '3.145926870', [1 0 0 0 1 0 2 0 0 0 0]
Y" % Run-length decoding. Implicitly display
% STACK: '3522'