아래 의사 코드를 통해 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 문자로만 구성된 문장 .
- 문장에는 마침표, 공백 및 기타 문장 부호가있을 수 있지만 한 줄만됩니다.
- 문장의 길이는 3 자 이상입니다.
산출
- 위에서 설명한 규칙에 따라 결과 암호는 문자열 또는 출력으로 반환됩니다.
규칙
예
한 줄에 입력하고 다음에 출력합니다. 빈 줄은 예를 분리합니다.
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
하기 때문에 바이너리 또는 일어날 때 아무런 변화가 없습니다.