Bu oldukça basit bir kod golf meydan okumadır. ASCII dizesi verilen programınız, bu dizeyi değerlendireceği iki dizeye ayrıştırmaktır. İkinci dize birinciden "geç" ise, bir 1 döndürür, birinciden "daha erken" ise -1 döndürür ve eğer aynıysa 0 döndürür. "later" ve "early" kelimelerinin ne anlama geldiğini açıklığa kavuşturalım, ASCII karakter kodlarına bakalım. Dizenin her karakterini karşılaştırmalı ve her birine bir sayının rakamları olarak davranmalısınız. Daha sonra, daha küçük bir sayıdan sonra ortaya çıkan daha büyük bir sayı anlamına gelir. Dizeler, iki giriş grubunu ayırmak için kısa çizgi karakteri ile biçimlendirilir.
Bu örneğe bir göz atın:
7-9
bir girdi olarak dönmelidir1
.
7
ASCII koduna55
ve9
ASCII koduna dönüştürür57
.Gibi
57
sayısal sonra gerçekleşir55
,9
daha sonra daha7
.
Başka bir örnek:
LKzb-LKaj
bir girdi dönmesi gerektiği gibi-1
Bunun için ASCII kod dizileri
76-75-122-98
ve76-75-97-106
Bu bir kod golf meydan okumadır ve bayt sayısı girişlerin nasıl puanlanacağıdır.
Yazdırılabilir 95 ASCII karakterden herhangi bir girdi, boşluklar ve girişi ayırmaktan başka herhangi bir şey için tireler hariç kabul edilir. Ayrıca, dizelerin aynı uzunlukta olacağı garanti edilmez.
İyi şanslar!
DÜZENLEME: Daha açık olmak gerekirse, her karakter bir sayıdaki rakam gibi ele alınmalıdır. Örnekte LKzb-LKaj
, gerçi j
daha geç b
, z
daha sonra daha a
ve daha önemli bir basamak olduğu için, bu önceliklidir. Sağlanan bir dize her zaman en az 3 karakterden oluşur ve boş dizeleri bu sorunun kapsamından çıkarır.
EDIT: Yardımınız için bazı test örnekleri:
A-9
->-1
11-Z
->-1
3h~J*-3h~J*
->0
Xv-Y0
->1
11-Z
-> -1
sorunun şu andaki ifadesi dikkate alındığında hiçbir anlam ifade etmiyor. Z
(90), 1
(49) ' dan büyüktür ve en önemli harftir. Lütfen farklı uzunluktaki dizelerin nasıl karşılaştırıldığını netleştirin.
11>Z
örneklerinizde neden ne zaman olduğu konusundaki karışıklığım 1<Z
. Farklı uzunluktaki dizelerle ilgili tanımlanmamış bir davranış olmalıdır veya örnek yanlıştır.
~
artıracak, 126'da, ardından bir sonraki basamağı birer birer artıracak ve ilk basamağı döndürecektiniz !
. En önemli basamaktaki her artış, ikinci en önemli basamaktaki rakamı 127 arttırır.