最近在洛古上刷题,一个很简单的题目却怎么也过不了,很是郁闷。
不断尝试N次后,终于AC。原来是split()的一个小trick导致开始的失败。
题目要求是输入一行N个整数,我是用的input().split(' '),自己在jupyterlab上实验也是没问题的。
但就是过不了,提交上去就是RE。
最后正确的答案是input().split()。
看了下资料,split()的使用方法是:
str.split(str="", num=string.count(str)).
str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
也就是说input().split()比input().split(' ')能处理更多的分割情况,所以我估计测试数据里肯定有除了空格之外的分隔符,例如回车等。
做了个简单实验:
P = '1 444 2332 90\n44 22 44'
print('显示指定空格分隔符:{}'.format(P.split(' ')))
print('不指定分隔符: {}'.format(P.split()))
输出: 显示指定空格分隔符:['1', '444', '2332', '90\n44', '22', '44'] 不指定分隔符: ['1', '444', '2332', '90', '44', '22', '44']
果然是细节决定成败。