Chúng tôi sẽ xác định Mã hóa lẻ / chẵn ASCII thông qua mã giả dưới đây:
Define 'neighbor' as the characters adjacent to the current letter in the string
If the one of the neighbors is out of bounds of the string, treat it as \0 or null
Take an input string
For each letter in the string, do
If the 0-based index of the current letter is even, then
Use the binary-or of the ASCII codes of both its neighbors
Else
If the ASCII code of the current letter is odd, then
Use the binary-or of itself plus the left neighbor
Else
Use the binary-or of itself plus the right neighbor
In all cases,
Convert the result back to ASCII and return it
If this would result in a code point 127 or greater to be converted, then
Instead return a space
Join the results of the For loop back into one string and output it
Ví dụ, đối với đầu vào Hello
, đầu ra là emmol
, vì
- Lần
H
lượt\0 | 'e'
làe
- Lần
e
lượt'e' | 'l'
, hoặc101 | 108
, đó là109
hoặcm
- Đầu tiên
l
cũng chuyển sang101 | 108
hoặcm
- Thứ hai
l
chuyển sang108 | 111
, đó là111
hoặco
- Lần
o
lượt đến108 | \0
, hoặcl
Đầu vào
- Một câu chỉ gồm các ký tự ASCII có thể in được, ở bất kỳ định dạng phù hợp nào .
- Câu có thể có dấu chấm, dấu cách và dấu câu khác, nhưng sẽ chỉ là một dòng.
- Câu sẽ có ít nhất ba ký tự.
Đầu ra
- Mật mã kết quả, dựa trên các quy tắc được mô tả ở trên, được trả về dưới dạng chuỗi hoặc đầu ra.
Những quy định
- Hoặc là một chương trình đầy đủ hoặc một chức năng được chấp nhận.
- Sơ hở tiêu chuẩn bị cấm.
- Đây là môn đánh gôn, vì vậy tất cả các quy tắc chơi gôn thông thường đều được áp dụng và mã ngắn nhất (tính bằng byte) sẽ thắng.
Ví dụ
Đầu vào trên một dòng, đầu ra trên sau. Dòng trống ví dụ riêng biệt.
Hello
emmol
Hello, World!
emmol, ww~ved
PPCG
PSWG
Programming Puzzles and Code Golf
r wogsmmoonpuu ~ meannncoooeggonl
abcdefghijklmnopqrstuvwxyz
bcfefgnijknmno~qrsvuvw~yzz
!abcdefghijklmnopqrstuvwxyz
aaccgeggoikkomoo qsswuww yy
Test 123 with odd characters. R@*SKA0z8d862
euutu133www|todddchizsscguwssr`jS{SK{z~|v66
o
thay đổi l
trong ví dụ đầu tiên, tôi khá chắc chắn rằng thông số kỹ thuật của bạn đảm bảo rằng lần đầu tiên o
không thay đổi thành l
trong ví dụ thứ hai. Nó nên thay đổi thành 'l' | ','
, bất cứ điều gì, phải không?
'l' | ','
, cái 108 | 44 --> 1101111 | 0101100
nào trở thành 108
, cái nào là l
. Điều này ,
xảy ra để phù hợp với l
, vì vậy không có thay đổi khi nhị phân - hoặc diễn ra.