Jest to dość proste wyzwanie golfowe. Twój program, mając ciąg ASCII, parsuje ten ciąg na dwa ciągi, które oceni. Jeśli drugi ciąg jest „późniejszy” niż pierwszy, zwróci 1, jeśli jest „wcześniejszy” niż pierwszy, zwróci -1, a jeśli są takie same, zwróci 0. To wyjaśnij, co oznaczają „później” i „wcześniej”, spójrzmy na kody znaków ASCII. Musisz porównać każdy znak ciągu, traktując każdy z nich jako cyfry liczby. Później odnosi się do większej liczby, występującej po mniejszej liczbie. Ciągi zostaną sformatowane za pomocą znaku łącznika, aby oddzielić dwie grupy wejściowe.
Spójrz na ten przykład:
7-9jako dane wejściowe powinny powrócić1.
7konwertuje na kod ASCII55i9konwertuje na kod ASCII57.Jak
57następuje numerycznie po55,9jest późniejszy niż7.
Inny przykład:
LKzb-LKajjako dane wejściowe powinny powrócić-1Sekwencjami kodu ASCII do tego są
76-75-122-98i76-75-97-106
Jest to wyzwanie dla golfa kodowego, a liczba bajtów określa sposób punktowania wpisów.
Dowolne dane wejściowe z 95 drukowalnych znaków ASCII są akceptowane, z wyjątkiem spacji i łączników dla wszystkiego oprócz oddzielenia danych wejściowych. Ponadto nie można zagwarantować, że ciągi są tej samej długości.
Powodzenia!
EDYCJA: Aby być bardziej zrozumiałym, każdy znak należy traktować jak cyfrę w liczbie. W tym przykładzie LKzb-LKaj, choć jjest późniejszy niż b, zjest późniejszy a, a ponieważ jest to cyfra bardziej znacząca, ma pierwszeństwo. Podany ciąg będzie zawsze miał co najmniej 3 znaki, co wyeliminuje puste ciągi z zakresu tego problemu.
EDYCJA: Oto kilka przypadków testowych, do twojej pomocy:
A-9->-111-Z->-13h~J*-3h~J*->0Xv-Y0->1
11-Z-> -1nie ma sensu, biorąc pod uwagę obecne sformułowanie pytania. Z(90) jest większy niż 1(49) i jest najbardziej znaczącą literą. Wyjaśnij, w jaki sposób porównywane są łańcuchy o różnych długościach.
11>Zw twoich przykładach kiedy 1<Z. Musi istnieć pewne niezdefiniowane zachowanie związane z łańcuchami o różnych długościach lub przykład jest zły.
~na 126, a następnie zwiększaj kolejną cyfrę o jedną, zwracając początkową cyfrę do !. Każdy wzrost najbardziej znaczącej cyfry odpowiada inkrementacji drugiej najbardziej znaczącej cyfry o 127.