如何在50,000个HTML页面中查找电话号码?
为了使电话筛选器的工作变得更简单,我列出了在SDE屏幕上您需要问的五个基本问题。他们不能保证你的候选人会很棒,但他们将帮助淘汰大量的候选人,这些候选人今天正在通过我们的过程。
1) 编码应聘者必须用C、C++或Java写一些简单的、语法正确的代码。
2) OO设计候选人必须定义基本的OO概念,并想出类来模拟一个简单的问题。
3)编写脚本和正则表达式应聘者必须描述如何在50,000个页面中查找电话号码。
4)数据结构应聘者必须证明最常见的数据结构的基本知识。
5)比特和字节考生必须回答有关比特、字节和二进制数的简单问题。
你要找的是对问题领域一无所知,或者非常困惑的应聘者。
注: Steve Yegge最初提出了这个问题。
发布于 2009-04-04 12:23:43
借用sieben的C#答案中的两件事,这里是一小段F#代码片段,可以完成这项工作。它所缺少的就是一种调用processDirectory的方法,而这是有意省略的:)
open System
open System.IO
open System.Text.RegularExpressions
let rgx = Regex(@"(\({0,1}\d{3}\){0,1}[- \.]\d{3}[- \.]\d{4})|(\+\d{2}-\d{2,4}-\d{3,4}-\d{3,4})", RegexOptions.Compiled)
let processFile contents = contents |> rgx.Matches |> Seq.cast |> Seq.map(fun m -> m.Value)
let processDirectory path = Directory.GetFiles(path, "*.html", SearchOption.AllDirectories) |> Seq.map(File.ReadAllText >> processFile) |> Seq.concathttps://stackoverflow.com/questions/48744
复制相似问题