Ми визначимо ASCII непарний / парний шифр за допомогою наведеного нижче псевдокоду:
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
Наприклад, для введення Hello
, вихід є emmol
, оскільки
- У
H
черзі до\0 | 'e'
якої єe
e
Повертається'e' | 'l'
, або101 | 108
, що109
абоm
- Перший
l
також звертається до101 | 108
абоm
- Другий
l
звертається до того108 | 111
, що є111
абоo
o
Повертається108 | \0
, абоl
Вхідні дані
- Речення, що складається виключно з символів ASCII для друку, у будь-якому відповідному форматі .
- У реченні можуть бути періоди, пробіли та інші розділові знаки, але вони будуть колись одним рядком.
- У реченні буде довжина не менше трьох символів.
Вихідні дані
- Отриманий шифр, виходячи з правил, описаних вище, повертається як рядок або вихід.
Правила
- Прийнятна або повна програма, або функція.
- Стандартні лазівки заборонені.
- Це код-гольф, тому застосовуються всі звичайні правила гольфу, і найкоротший код (у байтах) виграє.
Приклади
Введіть один рядок, виведіть на наступному. Пусті рядки - окремі приклади.
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
зміни l
у першому прикладі я впевнений, що ваші характеристики забезпечують, щоб перший o
не змінився на l
другому прикладі. Це має змінитись на 'l' | ','
, що б там не було, правда?
'l' | ','
, що є 108 | 44 --> 1101111 | 0101100
, що стає 108
, що є l
. ,
Відбувається вибудовуватися з l
, так що немає ніяких змін при довічним або відбувається.