陈哲重复了一遍,“那我说两句。”
他顿了顿,目光落在摄象头上,仿佛穿透屏幕,直接看着对面那个人。
“你刚才那些话,我没听清。能不能再说一遍?”
“意思就是,”陈哲说,“你刚才说的那些,我没在听。因为不重要。”
他往后靠了靠,让自己的脸完全出现在画面里。
“你约我出来,说要切磋。我来了。你开场先喷五分钟垃圾话,我听着。现在你喷完了,咱们是不是该开始了?”
他张了张嘴,想说什么,但又咽了回去。
弹幕安静了一秒,然后炸了。
【c家军:???】
【c家军:这人不按套路出牌啊】
【哲思的粉丝:哈哈哈哈笑死,根本不在乎】
【代码猎人:有点东西,心理素质可以】
【pythonista:老c被噎住了哈哈哈哈】
“行。”他坐直了身子,“你行。那咱们就正式开始。”
他清了清嗓子。
“规则很简单:每人出一道题,给对方十分钟时间。写完了跑测试,跑不过算输。先出题的人我,你没意见吧?”
陈哲点点头:“可以。”
“好。那第一题——热身题,别紧张。”
他低头看了一眼手边的笔记本,然后抬起头。
“给定一个整数数组,写一个函数返回数组中所有偶数的和。但如果数组中有负数,则直接返回-1。”
他说完,往后一靠,双手抱在胸前,等着看陈哲的反应。
陈哲的脸上没有任何表情。
他低下头,双手放在键盘上。
屏幕共享打开了,所有人都能看见他的编辑器界面。
他开始打字。
“““
计算数组中所有偶数的和。
如果数组中有负数,返回-1。
参数:
arr:整数列表
返回:
t:偶数和或-1
“““
if not isstance(arr, list):
raise typeerror(“输入必须是列表“)
for nu arr:
if not isstance(nu,(t, float)):
raise typeerror(“列表元素必须是数字“)
return -1
for nu arr:
return total
打完,他停了一下,又补了几行。
prt(“所有测试通过“)
他敲下回车,代码跑起来。
屏幕上跳出一行字:所有测试通过。
时间:1分47秒。
陈哲抬起头,看着摄象头。
“写完了。还有问题吗?”
【c家军:???这么快】
【代码猎人:还加了测试用例?】
【pythonista:这代码质量可以的,有docstrg有类型检查】
【灰色轨道:就这?热身题而已】
【哲思的粉丝:对面出的题也太简单了吧】
他盯着屏幕,好一会儿没动。
“你……”他张了张嘴,“你写测试用例干什么?”
陈哲看着他,眼神里有一点不解。
“测试用例不是应该的吗?”他说,“你出题的时候没说不要测试用例。”
弹幕又炸了一波。
【c家军:老c被反杀了哈哈哈哈】
【代码猎人:这波是专业对业馀】
【pythonista:确实,正经写代码谁不写测试】
“行。”他说,“第一题算你过了。现在轮到你出题了。”
陈哲点了点头:“那好,请接着。”
陈哲出了个类似难度的题目:“写一个函数,判断一个双精度浮点数的小数部分是否为0。如果是,返回true;否则返回false。”
“这不就是正常浮点计算?两分钟了,你看看我写的,设了个误差范围,应该没什么问题。”白人男子把界面上的内容投给陈哲,说。
“的确。”
“中国人,我来出第二道题,给定一个字符串,找出其中第一个不重复的字符,返回它的索引。如果不存在,返回-1。”
“这也很简单,先用一次遍历统计频率,第二次遍历找到第一个频率为 1的字符,结束。”
……
渐渐地,陈哲能明显感觉到对方的题目难度从越来越往上变得仿佛碰到了某个瓶颈,对方的应对越来越迟缓,而对于陈哲来说,却仿佛越来越轻松了。
大概也是因为陈哲在基础方面的题目没下多少功夫,反而在深入的知识上有着不少涉猎。
“你来!”
“我来么?”陈哲点头。
他低下头,想了想,然后抬起头。
“我的题是这样的。”
他顿了顿。
“写一个函数,输入一个字符串,输出这个字符串中每个字符出现的次数,按出现次数从高到低排序。如果出现次数相同,按字符的ascii码升序排序。要求时间复杂度不超过o(n log n),空间复杂度不超过o(n)。”
他说完,看着摄象头。
“十分钟。”
“就这?”他说,“这不就是统计字符频率然后排序?这有什么难的?”
陈哲没说话,只是看着他。
一分钟,两分钟,三分钟。
他的眉头皱起来了。
四分钟,五分钟。
他开始删代码重写。
六分钟,七分钟。
他的额头上开始冒汗。
八分钟,九分钟。
他写