ACM模式vs核心代码模式
前言
前几天参加了腾讯的实习生基地面试,使用腾讯视频的”面呗”软件进行面试,手撕代码的过程中用的是ACM模式,之前对此并不熟悉,所以写一篇文章来总结记录一下.
本文首先介绍了什么是核心代码模式,然后介绍了什么是ACM模式,最后深入分析并总结了在JavaScript Node
环境中如何用ACM模式来答题,以及答题的注意事项.
核心代码模式
所谓核心代码,顾名思义,就是只需要完成代码的核心部分.
通常的表现形式是完成一个函数的内容部分,典型代表就是LeetCode,这也是我们平时练习最多的模式,其特点如下:
- 只需要完成代码的核心部分,函数名称和形参名称等等都已经准备好
- 不用处理输入输出,OJ(
Oline Judge
,在线判题系统)会自动调用我们完成的核心函数,输入测试用例来进行测试,我们不用担心数据输入 - 通常情况下会用结果反馈,会提示不通过的原因及不通过的用例
ACM模式
ACM(Association for Computing Machinery, 计算机协会),每年会举办著名的ACM竞赛.ACM模式的得名就是ACM竞赛的判题模式.
ACM模式核心特点在于程序需从标准输入读取数据,处理后将结果输出至标准输出,对输入输出格式要求严格.也就是说数据需要我们自己来读入,并自己将结果输出,主要特点如下:
标准化输入输出: 禁止任何额外输出,否则会被判错.
通常包含多个测试用例,需循环处理直到输入结束.
常见输出形式
1
2
3
43 // 测试用例数量
1 2 // 用例1输入
3 4 // 用例2输入
5 6 // 用例3输入
一个典型的ACM模式基本代码如下:
1 |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 马嘉路!
评论