これはかなり単純なコードゴルフの挑戦です。ASCII文字列が与えられたプログラムは、その文字列を2つの文字列に解析し、評価します。2番目の文字列が最初の文字列より「遅い」場合は1を返し、最初の文字列より「早い」場合は-1を返し、同じ場合は0を返します。 「後」と「前」の意味を明確にして、ASCII文字コードを見てみましょう。文字列の各文字を比較し、それぞれを数値の数字として扱う必要があります。後で大きい数を指し、小さい数の後に発生します。文字列は、2つの入力グループを区切るためにハイフン文字でフォーマットされます。
この例を見てみましょう:
7-9入力として返す必要があり1ます。
7ASCIIコード55に変換し、ASCIIコードに9変換します57。
57数値の後に発生し55、9後でより7。
もう一つの例:
LKzb-LKaj入力として返されるように-1このためのASCIIコードシーケンスは
76-75-122-98、76-75-97-106
これはコードゴルフチャレンジであり、バイトカウントはエントリのスコアリング方法です。
スペースとハイフンを除いて、95の印刷可能なASCII文字からのすべての入力が受け入れられます。また、文字列が同じ長さであるとは限りません。
幸運を!
編集:より明確にするために、各文字は数字の数字のように扱われます。この例LKzb-LKajでjはb、zはより遅いa、より遅いであり、より有効な数字であるため、優先されます。提供される文字列は常に3文字以上であり、空の文字列はこの問題の範囲から除外されます。
編集:あなたの助けのために、ここにいくつかのテストケースがあります:
A-9->-111-Z->-13h~J*-3h~J*->0Xv-Y0->1
11-Z-> -1は、質問の現在の言い回しを考えると意味がありません。Z(90)は1(49)より大きく、最も重要な文字です。異なる長さの文字列を比較する方法を明確にしてください。
11>Z例でなぜなのか混乱しています1<Z。異なる長さの文字列を処理するには、未定義の動作が必要です。そうでない場合、例は間違っています。
~126でインクリメントし、次に次の桁を1つインクリメントして、最初の桁をに戻し!ます。最上位桁の各増加は、127で2番目に上位桁をインクリメントすると等価である