Phần đơn giản: Cho một chuỗi đầu vào chỉ chứa các ký tự ASCII có thể in (dấu cách - dấu ngã), đếm số lần xuất hiện của mỗi ký tự và trả về kết quả trên bất kỳ định dạng thuận tiện nào. Kết quả cho một chuỗi a%hda7a
phải là một cái gì đó như : a:3, %:1, h:1, 7:1, d:1
. Sắp xếp là không cần thiết, các dấu phân cách và định dạng là tùy chọn nhưng phải dễ hiểu số nào tương ứng với ký tự nào. Bạn sẽ không bao gồm các ký tự không có trong chuỗi đầu vào ( a:3, b:0, c:0, d:1, ...
không ổn).
Thử thách thực sự:
Chuyển đổi mọi ký tự trong mã của bạn thành số nhị phân 8 bit (hoặc 16 bit nếu bạn đang sử dụng UTF-16 hoặc tương tự) và liệt kê mọi ký tự bắt đầu từ 0
.
Đối với mỗi ký tự ( i
là liệt kê), i%7
-bit 1 phải là 1
. Các bit được đánh số từ bên phải. Tất cả các bit khác có thể là bất cứ điều gì bạn muốn.
Hãy sử dụng mã sau đây làm ví dụ:
[f]-xif)#f
Chuyển đổi này thành nhị phân, chúng tôi nhận được các mảng dưới đây. Số thứ nhất (đại diện [
có số 1
ở vị trí số 0, do đó số thứ tự ổn. Số thứ hai (số đại diện f
có 1
vị trí số 1, do đó số này cũng ổn. Tiếp tục như vậy và bạn sẽ thấy mã ở trên là hợp lệ.
C 76543210 Số bit - -------- ---------- [0101101 1 0 - OK f 011001 1 0 1 - OK ] 01011 1 01 2 - OK - 0010 1 101 3 - OK x 011 1 1000 4 - OK tôi 01 1 01001 5 - OK f 0 1 100110 6 - OK ) 0010100 1 0 - OK # 001000 1 1 1 - OK f 01100 1 10 2 - OK
Nếu chúng tôi thay đổi mã thành: ]f[-xif)#f
chúng tôi sẽ bắt đầu chuỗi sau:
C 76543210 Bit number
- -------- ----------
] 01011101 0 <- OK
f 01100110 1 <- OK
[ 01011011 2 <- Not OK
- 00101101 3 <- OK
Như chúng ta thấy, ký tự thứ ba [
không có 1
vị trí thứ 2 (không có chỉ mục) và do đó mã này không hợp lệ.
Các trường hợp thử nghiệm:
Input:
This is a string containing some symbols: ".#!".#&/#
Output:
! " # & / : T a b c e g h i l m n o r s t y .
7 1 2 3 1 1 1 1 2 1 1 1 2 1 5 1 2 4 3 1 6 2 1 2
Bất kỳ định dạng đầu ra hợp lý là OK (bất cứ điều gì thuận tiện nhất cho bạn). Ví dụ, bạn có thể có: :7, !:1, ":2, #:3, &:1, /:1, T:1, a:2 ...
hoặc [ ,7][!,1][",2][#,3][&,1]...
. Đầu ra là trên bất kỳ cách tiêu chuẩn nào (trở về từ chức năng, được in thành STDOUT, v.v.)
1i
mô đun 7
.
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ giành được ref .
00001010
. Nó cũng có thể hữu ích! :)
n%7
vị trí thứ> pastie.org/pastes/10985263/text