面试IT业界顶尖企业所应该知道的10道题(1)
来源:互联网 发布:mysql 时间虚表 编辑:程序博客网 时间:2024/06/07 22:46
题目: 现有一个包含一千万个单词的文本文件, 每个单词占一行, 每行小于1K字节. 要求找出出现次数最多的10个单词. 如果要从一千个这样的文件中找出出现次数最多的10个单词(所有单词加起来去重后不超过一千万个), 你会怎么设计?
难度: 10K
领域: 编码, 架构, 分布式
*** 解析 ***
这道题没有任何算法上的难度, 最简单的思路就是, 一次读取一行, 计数. 先从单个文件来考虑, 首先考察面试者最基本的用计算机解决简单问题的能力.
* Shell
如果面试者的简历提到 Linux Shell, 让其用一行 Shell 命令(sort, uniq)来解.
* 脚本语言
要求面试者用任何一种通用的脚本语言来解决, 例如 PHP, Python. 要求其手写出无语法错误的可执行的完全正确的代码, 考察其编码能力基本功.
* SQL
假设单词是保存在 MySQL 数据库表中, 要求面试者用一条 SQL 语句来解, 考察其是否掌握 SQL, 以及 count(), group by, order by 等关键字的使用.
* 多线程, 多机解决的思路
将条件设置为有一千个或者更多的文件的情况, 如果面试者能主动想到如上方法的局限性和性能问题, 可以加分. 要求面试者分析出影响性能的瓶颈在哪.
如果面试者能想到多线程, 多机分布式, 要求其设计一个大致的方案.
0 0
- 面试IT业界顶尖企业所应该知道的10道题(1)
- 你所应该要知道的面试艺术与技巧
- 七大IT业界顶尖认证证书
- 面试IT企业的书单
- 前端开发所应该知道的HTTP
- 你所应该知道的XPATH
- 你所应该知道的Dom4J
- 你所应该知道的Android设计
- SurfaceView你所应该知道的事
- IT工作者应该知道的10个小秘密
- 一个顶尖企业的项目总监谈IT企业研发项目管理
- 应该知道的常用IT简写
- 你应该知道的一些IT名词
- IT大家应该知道的数值
- 面试,应届生应该知道的点东西
- 程序员面试时应该知道的福利待遇
- 【笔试&面试】列举你所知道的
- 我所知道的BI应该包含的技术:
- Analyzing SAP Extended Memory, SAP Heap Memory, and SAP Roll Memory
- 【数据库系统概论】-并发控制
- LeetCode: Wildcard Matching
- linux iptables使用注意
- QQ第三方登陆及同步内容到腾讯微博,腾讯空间,朋友网
- 面试IT业界顶尖企业所应该知道的10道题(1)
- Unity3D中Resources动态加载NGUI图片的方法!!!
- Caffe for Windows配置和测试【流程】
- 守护进程的设计与实现
- 微信在中国“抢了微博的风头”
- [前端] sublime text3 新建片段
- 《c陷阱与缺陷》笔记--函数指针
- NDK插件下载设置步骤
- UIButton 详解