一个面试用例

作者简介: 英正明, 腾讯专家工程师。

在鹅厂,面试总是必不可少的。

在面试的时候,我常常用下面的方法考查代码和算法的能力。

发送面试通知时,会通知面试者会需要在白纸上手写或者笔记本上不借助IDE编写代码。当对面试者能力一无所知的时候,我最常问的第一个问题是:如何计算两个日期(年月日)之间相差多少天,需要在纸上或者文本编辑器上编写代码。允许面试者使用任何他最擅长的语言。

这个问题问完,有一些想半天还没动笔的,我会把问题简化为如何计算同一年两个日期(月日)之间相差多少天。减分。

有些人会问年的范围。加分。并限定从1970年开始。

有些会问结果是否存在负数。加分。

然后开始写函数声明,函数声明都写不出来的,直接pass。有些会用个结构体表示日期,有些直接在函数声明中使用整数分别表示年月日,都一样。

写实现的时候就五花八门了。

不能写出使用数组表示每月天数的,减分。

能把相差多少天首先抽象成计算某一天(比如1970.1.1)开始的天数,然后两个数字相减。大加分。

有些没有使用上面的方法,而是使用天数直接相减。只要能正确实现,大加分。

能把闰年函数抽象出来的,加分。我不要求写出闰年函数实现,只要能抽象,我会告诉面试者不需要写这个函数实现。

实现写完,看函数的实现,如果整体逻辑混乱的(基本都是面试者尝试直接通过日期加减获得间隔的天数),大减分。

如果整体逻辑清楚,但是有小问题的(例如月份下标出错,有泄漏的),小减分。

另外,整个面试过程中,如果碰到不清晰的,能主动及时沟通的,加分。

然后根据这个题目的答题情况,选择后面的题目。

相关推荐

腾讯云总监手把手教你,如何成为AI工程师?

Python分析231份招聘需求,如何成为AI工程师?

原文链接:

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

为什么这么多人学不会C语言?

很多人觉得用C语言作为入门语言觉得太难了,里面还有指针,回调,递归之类的操作太难了。为什么这么多人觉得C语言难?笔者根据从业十几年的经验尝试着分析一下。 ? 第...

3486
来自专栏web前端教室

a=b=c,但a不等于c?这是什么鬼

昨天在网上乱翻资料,发现一道题,很有意思,是这样婶的, var a = {n:1}; a.x = a = {n:2}; console.log(a.x); 答案...

1835
来自专栏专知

【干货】如何写代码 -编程内功心法

写代码就是学一门语言然后开始撸代码吗?看完了我的《GoF设计模式》系列文章的同学或者本身已经就是老鸟的同学显然不会这么认为。 编程是一项非常严谨的工作!虽然我们...

3278
来自专栏怀英的自我修炼

Java漫谈2

本周我们的Java漫谈从一个段子说起。话说有一个老程序退休了,在家闲着没事便开始学习写毛笔字,焚香,研墨,铺纸。站在薄如蝉翼白似雪的宣纸面前,提笔闭目。只见那人...

3198
来自专栏怀英的自我修炼

Java漫谈12

上周聊完了Java中的String这种类型,这周我想聊聊Java中的集装箱——集合。当然,这篇也是Java基础漫谈系列的最后一篇文章。不过可能你会说不对啊,Ja...

34711
来自专栏小蠢驴iOS专题

Masonry拓展-链式编程 & 函数式编程

1074
来自专栏知识分享

3-学习GPRS_Air202(需要知道的关于Lua的一些基本的知识)

1735
来自专栏非著名程序员

编程内功心法:如何写代码?

写代码就是学一门语言然后开始撸代码吗?看完了我的《GoF 设计模式》系列文章的同学或者本身已经就是老鸟的同学显然不会这么认为。编程是一项非常严谨的工作!

59312
来自专栏Java学习网

编程的智慧特点

  编程是一种创造性的工作,是一门艺术。精通任何一门艺术,都需要很多的练习和领悟,所以这里提出的“智慧”,并不是号称一天瘦十斤的减肥药,它并不能代替你自己的勤奋...

3216
来自专栏IT派

Python学习路线图

Python上手很容易, 基本有其他语言编程经验的人可以在1周内学会Python最基本的内容.

1980

扫码关注云+社区