これはかなり単純なコードゴルフの挑戦です。ASCII文字列が与えられたプログラムは、その文字列を2つの文字列に解析し、評価します。2番目の文字列が最初の文字列より「遅い」場合は1を返し、最初の文字列より「早い」場合は-1を返し、同じ場合は0を返します。 「後」と「前」の意味を明確にして、ASCII文字コードを見てみましょう。文字列の各文字を比較し、それぞれを数値の数字として扱う必要があります。後で大きい数を指し、小さい数の後に発生します。文字列は、2つの入力グループを区切るためにハイフン文字でフォーマットされます。
この例を見てみましょう:
7-9
入力として返す必要があり1
ます。
7
ASCIIコード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
->-1
11-Z
->-1
3h~J*-3h~J*
->0
Xv-Y0
->1
11-Z
-> -1
は、質問の現在の言い回しを考えると意味がありません。Z
(90)は1
(49)より大きく、最も重要な文字です。異なる長さの文字列を比較する方法を明確にしてください。
11>Z
例でなぜなのか混乱しています1<Z
。異なる長さの文字列を処理するには、未定義の動作が必要です。そうでない場合、例は間違っています。
~
126でインクリメントし、次に次の桁を1つインクリメントして、最初の桁をに戻し!
ます。最上位桁の各増加は、127で2番目に上位桁をインクリメントすると等価である