这是一个相当简单的高尔夫代码挑战。给定一个ASCII字符串,您的程序将把该字符串解析为两个字符串,它将对其求值。如果第二个字符串比第一个字符串“晚”,则将返回1;如果比第一个字符串“早”,则将返回-1;如果相同,则将返回0。弄清楚“稍后”和“更早”的含义,让我们看一下ASCII字符代码。您需要比较字符串中的每个字符,将每个字符视为一个数字。后来是指较大的数字,出现在较小的数字之后。字符串将使用连字符格式化,以分隔两个输入组。
看一下这个例子:
7-9
作为输入应该返回1
。
7
转换为ASCII代码55
,然后9
转换为ASCII代码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递增第二最显著位