ASCII Tek / Çift Şifresini aşağıdaki sahte kod aracılığıyla tanımlayacağız :
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
Örneğin, giriş Hello
, çıkış emmol
, çünkü
H
Kıvrımın\0 | 'e'
hangie
e
Döner'e' | 'l'
ya da101 | 108
olan109
veyam
- İlki
l
ayrıca101 | 108
veyam
- İkinci
l
kıvrımın108 | 111
olduğu111
ya dao
o
Döner108 | \0
, ya dal
Giriş
- Herhangi bir uygun biçimde yalnızca yazdırılabilir ASCII karakterlerinden oluşan bir cümle .
- Cümlenin noktaları, boşlukları ve diğer noktalama işaretleri olabilir, ancak yalnızca bir satır olacaktır.
- Cümle en az üç karakter uzunluğunda olacaktır.
Çıktı
- Ortaya çıkan şifre, yukarıda açıklanan kurallara dayanarak, bir dize veya çıktı olarak döndürülür.
Kurallar
- Tam bir program veya bir işlev kabul edilebilir.
- Standart boşluklar yasaktır.
- Bu kod golfüdür, bu nedenle her zamanki golf kuralları geçerlidir ve en kısa kod (bayt cinsinden) kazanır.
Örnekler
Bir satırdan giriş, aşağıdaki satırdan çıkış. Boş satırlar örnekleri ayırır.
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
değişiklikler göz önüne alındığında, l
teknik özelliklerinizin ilk örnekte ikinci örnekte o
değişmemesini sağladığından eminim l
. Ne 'l' | ','
olursa olsun değişmeli , değil mi?
'l' | ','
olan 108 | 44 --> 1101111 | 0101100
hale geldiği, 108
hangi l
. ,
İle hizaya olur l
, böylece ikili-veya gerçekleştiğinde herhangi bir değişiklik yoktur.