เราจะกำหนดASCII Odd / Even Cipherผ่าน pseudocode ด้านล่าง:
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