codemaster_us的水平在圈內还是比较知名的,陈哲这几天也研究了一下对方的视频,目前是没有看出什么破绽来。
    编程这东西终究和真正的內容领域不同,內容领域比如写作、vlog视频,很容易看出一个人水平的高低,眼界的深浅,而编程很容易变得圆融如意,阶段性的差別也就只有进阶和入门。
    再往上看,也不是做视频的內容。
    所以在真正开始出难题之前,谁也不知道彼此的水准。
    至於业外对於圈內人士的排行,那就是纯纯的门外汉见解了,一个连代码都没写过几行的人,又凭什么去评判別人的键法。
    隨著直播间的开启,屏幕上顿时出现一个白人男子的形象,看上去是个標准的美利坚红脖子,有著茂密得几乎遮盖了半张脸的络腮鬍和一件法兰绒灰色衬衫。
    “晚上好,各位。”男人说著,目光瞥向下方的评论区。
    【毛绒侦探:晚上好兄弟。】
    【滑板杰克:老c,今天讲什么?】
    “okay……让我们等待一下直播间的观眾,”他表现出蛮不在意的面容,“就如我昨天在群组里面和大家说过的,今天我们有一件事情要做,很简单,那就是和人约架。”
    “程序,也是战斗的一部分!把那个胆小鬼打得屁滚尿流!”
    codemaster_us躺在人体工学椅上,姿態放得很高,脸上呈现出一抹直播式的亢奋:“让我猜猜看那个哲思小鬼是不是不敢出来了?”
    “朋友们,答应我,如果他今晚始终不敢与我对线,那就去他的评论区,轰炸他。”
    陈哲看著对方的面孔,不由感慨对方先前在私信里与自己聊天的那一口火气,不愧是美利坚红脖子。
    不过陈哲在这观看对方的直播並不是怯战了,而是先琢磨一下对方这边的气氛如何,稍作思索之后,陈哲就打开了自己的直播间。
    他的直播间一开始,两边的热度立刻开始上升!
    【哲思的粉丝:这次怎么晚点了?现在都八点零一了,刚刚我还在c那边的直播间看了一会儿。】
    【写到这里我希望读者记一下我们域名 看书就来 101 看书网,?0???????.??????超靠谱 】
    【没有人类的皮肤:今天真的要和对面那个频道主直播pk?不会是剧本吧?】
    “因为一些事情耽搁了时间,十分抱歉。”
    陈哲把摄像头对准自己,戴著平光眼镜的面容出现在界面里,谈吐之间有著一份令人信服的中国程式设计师气质。
    趁著现在两个直播间还没有牵上线,陈哲用小窗看著对面的直播,一边观看著两边的观看人数的增长量,出乎他意料的是,似乎因为他是新人频道主的缘故,粉丝的粘性很高,几乎是直接追上了对面直播间里的人数。
    【庞科:感觉今晚会有好戏看了。】
    【瓜子23:这两位都是我关注的博主,不过就我来看,应该是哲思频道的质量更高一些……】
    陈哲微微一怔,这直播间里竟然还有一些中文id甚至人名闪过?
    不过这也是他的预料之中了,毕竟陈哲在做视频之初就是看准了这方面中国学生的群体,自己的视频也算是做起来了,有这么一些人的粉丝构成不足为怪。
    考虑到自己的受眾问题,陈哲顿时微微一笑,去掉英语的说话口音,说了一句中文梗。
    “会贏的。”
    而这一句话一出,陈哲这边的气氛也就更加燥热。
    【???】
    【不要说这种缺心眼的话啊。】
    【这是什么意思?】
    “好,那么现在让我们和codemaster_us连线。”
    陈哲见到这上面反响热烈,顿时也不再犹豫,关掉了那一边的直播间小窗。
    到了这会儿,订阅者体量的差距才体现出来,虽然是同一个量级,但是一万订阅者和九万订阅者的差距还是极大的。
    陈哲这边的直播间人数才堪堪达到两百,对面的人数就到了六百个,而且看上去还有上升趋势。
    只是陈哲从来就没有想过和对方比拼这个,今天他只是想看看自己的编程水平怎么样,不论是接受考题,还是出题,陈哲都有自己的一套应对措施。
    半晌,陈哲打开直播间的后台,邀请“codemaster_us”作为自己的嘉宾,並点击允许加入。
    codemaster_us的头像出现在屏幕上的时候,陈哲看了一眼右下角的时间。
    20:03。
    比约定时间晚了三分钟。
    “晚上好,哲思。”codemaster_us的声音从耳机里传出来,带著一点直播特有的亢奋,还有那种刻意压低的沙哑,像是刚喝过酒,“终於捨得出来了?”
    陈哲没说话,只是点了点头。
    codemaster_us往后靠在椅背上,那张被络腮鬍遮住大半的脸上露出一个笑容。他身后的背景是一整面墙的编程书籍,码得整整齐齐,一看就是精心布置过的。
    “让我看看……”他把脸凑近摄像头,眯著眼睛,像是在打量什么,“一万二粉丝?哦不对,昨晚看的时候还是一万一,现在又涨了点。不错嘛,新人。”
    【c家军:哈哈,老c开始扎心了】
    【代码猎人:新人瑟瑟发抖】
    【pythonista:这波心理战可以的】
    陈哲的屏幕上飘过几条弹幕,都是从对面直播间翻墙过来看热闹的。
    他没理。
    codemaster_us等了两秒,没等到回应,脸上的笑容僵了一下。
    “怎么,不会说话?”他往后靠回去,两只手搭在扶手上,“还是说,你英语不太行?要不要我慢点说?或者咱们用翻译软体?”
    他顿了顿,转头对著自己的摄像头,做出一个夸张的表情:“哦对了,你是中国人对吧?中国人学编程確实挺多的,不过大多数都是……”他比了一个手势,在空中划了划,“copy paste?”
    陈哲依然没说话。
    【字节:???这人在说什么】
    【哲思的粉丝:种族歧视?】
    【普通人铁匠:取关了,什么玩意儿】
    【c家军:开个玩笑而已,別上纲上线】
    【c家军:就是,中国人那么玻璃心?】
    弹幕开始乱起来。
    codemaster_us看了一眼弹幕,脸上的笑意更深了。他往前倾了倾身子,盯著摄像头。
    “怎么,我说错了吗?”他摊开手,“你们中国人不是最擅长复製粘贴吗?github上那些中文注释的代码,十个有九个是从stack overflow上抄的。哦,还有那些外包项目,便宜是便宜,质量嘛……”
    他摇了摇头,没说完。
    陈哲这时候才开口。
    “你说完了?”
    codemaster_us愣了一下。
    陈哲的语气很平静,像是在问今天吃了什么。
    “你说完了,”陈哲重复了一遍,“那我说两句。”
    他顿了顿,目光落在摄像头上,仿佛穿透屏幕,直接看著对面那个人。
    “你刚才那些话,我没听清。能不能再说一遍?”
    codemaster_us皱了皱眉:“什么意思?”
    “意思就是,”陈哲说,“你刚才说的那些,我没在听。因为不重要。”
    他往后靠了靠,让自己的脸完全出现在画面里。
    “你约我出来,说要切磋。我来了。你开场先喷五分钟垃圾话,我听著。现在你喷完了,咱们是不是该开始了?”
    codemaster_us的表情僵住了。
    他张了张嘴,想说什么,但又咽了回去。
    弹幕安静了一秒,然后炸了。
    【c家军:???】
    【c家军:这人不按套路出牌啊】
    【哲思的粉丝:哈哈哈哈笑死,根本不在乎】
    【代码猎人:有点东西,心理素质可以】
    【pythonista:老c被噎住了哈哈哈哈】
    codemaster_us的脸涨红了一点,被络腮鬍遮著,看不太出来,但从他的眼神能看出来,他有点恼火。
    “行。”他坐直了身子,“你行。那咱们就正式开始。”
    他清了清嗓子。
    “规则很简单:每人出一道题,给对方十分钟时间。写完了跑测试,跑不过算输。先出题的人我,你没意见吧?”
    陈哲点点头:“可以。”
    codemaster_us往后靠在椅背上,脸上又浮现出那种自信的笑容。
    “好。那第一题——热身题,別紧张。”
    他低头看了一眼手边的笔记本,然后抬起头。
    “给定一个整数数组,写一个函数返回数组中所有偶数的和。但如果数组中有负数,则直接返回-1。”
    他说完,往后一靠,双手抱在胸前,等著看陈哲的反应。
    陈哲的脸上没有任何表情。
    他低下头,双手放在键盘上。
    屏幕共享打开了,所有人都能看见他的编辑器界面。
    他开始打字。
    ```python
    def sum_even_numbers(arr):
    “““
    计算数组中所有偶数的和。
    如果数组中有负数,返回-1。
    参数:
    arr:整数列表
    返回:
    int:偶数和或-1
    “““
    if not isinstance(arr, list):
    raise typeerror(“输入必须是列表“)
    #检查是否有负数
    for num in arr:
    if not isinstance(num,(int, float)):
    raise typeerror(“列表元素必须是数字“)
    if num < 0:
    return -1
    #计算偶数和
    total = 0
    for num in arr:
    if num % 2 == 0:
    total += num
    return total
    ```
    打完,他停了一下,又补了几行。
    ```python
    #测试用例
    if __name__==“__main__“:
    #正常情况
    assert sum_even_numbers([1, 2, 3, 4, 5, 6])== 12 # 2+4+6
    assert sum_even_numbers([2, 4, 6, 8])== 20
    assert sum_even_numbers([1, 3, 5])== 0
    #有负数
    assert sum_even_numbers([1,-2, 3, 4])==-1
    assert sum_even_numbers([-1,-2,-3])==-1
    #空数组
    assert sum_even_numbers([])== 0
    #包含0
    assert sum_even_numbers([0, 2, 4])== 6 # 0是偶数
    print(“所有测试通过“)
    ```
    他敲下回车,代码跑起来。
    屏幕上跳出一行字:所有测试通过。
    时间:1分47秒。
    陈哲抬起头,看著摄像头。
    “写完了。还有问题吗?”
    【c家军:???这么快】
    【代码猎人:还加了测试用例?】
    【pythonista:这代码质量可以的,有docstring有类型检查】
    【灰色轨道:就这?热身题而已】
    【哲思的粉丝:对面出的题也太简单了吧】
    codemaster_us的表情僵住了。
    他盯著屏幕,好一会儿没动。
    “你……”他张了张嘴,“你写测试用例干什么?”
    陈哲看著他,眼神里有一点不解。
    “测试用例不是应该的吗?”他说,“你出题的时候没说不要测试用例。”
    codemaster_us又噎住了。
    弹幕又炸了一波。
    【c家军:老c被反杀了哈哈哈哈】
    【代码猎人:这波是专业对业余】
    【pythonista:確实,正经写代码谁不写测试】
    codemaster_us深吸一口气,把脸上的表情压下去。
    “行。”他说,“第一题算你过了。现在轮到你出题了。”
    陈哲点了点头:“那好,请接著。”
    陈哲出了个类似难度的题目:“写一个函数,判断一个双精度浮点数的小数部分是否为0。如果是,返回true;否则返回false。”
    “这不就是正常浮点计算?坑点在0.1+0.2上吧……两分钟了,你看看我写的,设了个误差范围,应该没什么问题。”白人男子把界面上的內容投给陈哲,说。
    “的確。”
    “中国人,我来出第二道题,给定一个字符串,找出其中第一个不重复的字符,返回它的索引。如果不存在,返回-1。”
    “这也很简单,先用一次遍歷统计频率,第二次遍歷找到第一个频率为 1的字符,结束。”
    ……
    渐渐地,陈哲能明显感觉到对方的题目难度从越来越往上变得仿佛碰到了某个瓶颈,对方的应对越来越迟缓,而对於陈哲来说,却仿佛越来越轻鬆了。
    大概也是因为陈哲在基础方面的题目没下多少功夫,反而在深入的知识上有著不少涉猎。
    “你来!”
    codemaster_us在一次次的对拼中已经有点冷汗直冒,直播间的观眾里仅仅有一些水平不差的粉丝能跟得上两人的节奏,但是普遍吃瓜的人还有很多。
    “我来么?”陈哲点头。
    他低下头,想了想,然后抬起头。
    “我的题是这样的。”
    他顿了顿。
    “写一个函数,输入一个字符串,输出这个字符串中每个字符出现的次数,按出现次数从高到低排序。如果出现次数相同,按字符的ascii码升序排序。要求时间复杂度不超过o(n log n),空间复杂度不超过o(n)。”
    他说完,看著摄像头。
    “十分钟。”
    codemaster_us的表情变了,倒也不是愤怒,纯属是有点……懵。
    “就这?”他说,“这不就是统计字符频率然后排序?这有什么难的?”
    陈哲没说话,只是看著他。
    codemaster_us低下头,开始写。
    一分钟,两分钟,三分钟。
    他的眉头皱起来了。
    四分钟,五分钟。
    他开始刪代码重写。
    六分钟,七分钟。
    他的额头上开始冒汗。
    八分钟,九分钟。
    他写完了。
    “跑测试。”他说。
    代码跑起来。
    屏幕上跳出一行红字:测试失败。
    codemaster_us愣了一下。
    他又看了一遍代码,改了改,再跑。
    还是红字。
    九分五十秒。
    陈哲开口:“时间到了。”
    codemaster_us抬起头,脸上的表情复杂得像打翻了调料盘。
    “你的测试用例是什么?”他问。
    陈哲把自己的测试代码发到屏幕上。
    ```python
    def test_char_frequency():
    #基本情况
    assert char_frequency(“hello“)==[(l, 2),(h, 1),(e, 1),(o, 1)]
    #出现次数相同的情况
    assert char_frequency(“abcc“)==[(c, 2),(a, 1),(b, 1)]
    #空字符串
    assert char_frequency(““)==[]
    #所有字符都不同
    assert char_frequency(“abc“)==[(a, 1),(b, 1),(c, 1)]
    #特殊字符
    assert char_frequency(“a a“)==[(a, 2),(, 1)]
    print(“所有测试通过“)
    ```
    codemaster_us盯著屏幕,沉默了几秒。
    然后他抬起头,看著陈哲。
    “你……”他张了张嘴,“你刚才出的题,你心里有答案吗?”
    陈哲点点头。
    他把自己的代码发上去。
    ```python
    from collections import counter
    def char_frequency(s):
    “““
    统计字符串中每个字符出现的次数,按出现次数从高到低排序。
    出现次数相同的情况下,按字符的ascii码升序排序。
    参数:
    s:输入字符串
    返回:
    list:按(字符,次数)排序的列表
    “““
    if not isinstance(s, str):
    raise typeerror(“输入必须是字符串“)
    #统计频率
    counter = counter(s)
    #排序:先按次数降序,再按ascii升序
    result = sorted(counter.items(), key=lambda x:(-x[1], ord(x[0])))
    return result
    ```
    他又加了几行测试,和刚才发上去的一样。
    跑测试。
    所有测试通过。
    codemaster_us盯著屏幕,好一会儿没说话。
    弹幕已经疯了。
    【c家军:臥槽,这代码太优雅了】
    【代码猎人:counter+sorted,pythonic】
    【pythonista:而且考虑了空字符串和特殊字符】
    【哲思的粉丝:这就叫专业】
    【c家军:老c好像翻车了……】
    codemaster_us的脸色变得很难看。
    他深吸一口气,又深吸一口气。
    “行。”他说,声音比刚才低了很多,“这一轮算你贏。下一轮——”
    “不用了。”
    陈哲打断他。
    codemaster_us愣了一下。
    陈哲看著摄像头,语气很平静。
    “你刚才的几道题出得太简单,我不觉得那是你的真实水平。这一题你写不出来,我也不觉得那是你的真实水平。”他说,“你今天状態不好,或者你根本没把我当回事。继续比下去没意义。”
    他顿了顿。
    “你之前说,输了就把付费视频下架,贏了给我推荐。现在咱们打个平手,我不需要你下架视频,你也不用给我推。这件事到此为止。”
    codemaster_us张了张嘴,想说什么,但又咽了回去。
    陈哲看著摄像头,笑了一下。
    “下次再约,好好准备。”
    伴隨著陈哲这一边的黑屏,就只剩下codemaster_us错愕的面庞,以及哲思频道里变灰的头像。
    对方的神色渐渐从错愕忿怒变得复杂,许久才长出一口气,和直播间的水友抱怨了几句,也就关闭直播间,闷脸结束了这个纷扰的晚上。

章节目录

美利坚:我的模拟器不对劲!所有内容均来自互联网,肉肉屋只为原作者佚名的小说进行宣传。欢迎各位书友支持佚名并收藏美利坚:我的模拟器不对劲!最新章节