以下の擬似コードを使用して、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
たとえば、inputの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文字のみで構成される文。
- 文にはピリオド、スペース、およびその他の句読点を含めることができますが、1行のみです。
- 文は少なくとも3文字の長さになります。
出力
- 上記のルールに基づく結果の暗号は、文字列または出力として返されます。
ルール
例
1行で入力し、次で出力します。空白行は例を示します。
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
れていることを考えると、2番目の例の最初のo
変更があなたの仕様によって確実に変更さl
れないことを確信しています。に変更する必要'l' | ','
があります。
'l' | ','
となる、108 | 44 --> 1101111 | 0101100
なる、108
です、l
。,
並ぶように起こるl
ので、バイナリまたはが行われたときには変化はありません。