Nous définirons le chiffre impair / pair ASCII via le pseudocode ci-dessous:
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
Par exemple, pour l'entrée Hello
, la sortie est emmol
, puisque
- Les
H
virages vers\0 | 'e'
lesquelse
- Les
e
virages vers'e' | 'l'
, ou101 | 108
, qui est109
oum
- Le premier
l
se tourne également vers101 | 108
oum
- Le second se
l
tourne vers108 | 111
, qui est111
ouo
- Les
o
virages en108 | \0
, oul
Contribution
- Une phrase composée uniquement de caractères ASCII imprimables, dans tout format approprié .
- La phrase peut avoir des points, des espaces et d'autres signes de ponctuation, mais ne comportera jamais qu'une seule ligne.
- La phrase comportera au moins trois caractères.
Production
- Le chiffrement résultant, basé sur les règles décrites ci-dessus, est retourné sous forme de chaîne ou de sortie.
Les règles
- Un programme complet ou une fonction sont acceptables.
- Les failles standard sont interdites.
- Il s'agit de code-golf, donc toutes les règles de golf habituelles s'appliquent et le code le plus court (en octets) l'emporte.
Exemples
Entrée sur une ligne, sortie sur ce qui suit. Des lignes vides séparent les exemples.
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
modifications apportées au l
premier exemple, je suis presque sûr que vos spécifications garantissent que le premier o
ne change pas l
dans le deuxième exemple. Cela devrait changer 'l' | ','
, quoi que ce soit, non?
'l' | ','
, qui est 108 | 44 --> 1101111 | 0101100
, qui devient 108
, qui est l
. Le ,
arrive à s'aligner avec le l
, donc il n'y a pas de changement lorsque le binaire ou a lieu.