这个面试题是 朋友面试美国微软asp.net team的时候第一面的问题,一般来说第一面都会比较简单.....
1. 对方通过邮件和livemeeting 把题目发给你
2. 这个题目要求提供最终代码(C#)
3. 限制时间30分钟, 包括阅读文档和提交代码的时间..(其实是一个小时2个题目啦..不过另外一个和这个差不多困难,另外这个文档真是相当的长...说的很清楚)
4. 该最终代码必须可以编译,运行,并实现以下的业务功能
业务功能:
设计一个正则表达式解析器支持:
常量查找 例如表达式是abc 就匹配abc , a就匹配a ,长度无限制
\d 匹配一个数字
\d+
转义 \\ \\d 之类的
传入的正则表达式可能类似 dafdfa\dfa\dd\d+++ddfga434
想起来是很简单...但是时间只有半个小时....做起来就悲剧了
我自己试了一下,在没有准备的情况下,差不多用了40-50分钟才能完成一个有bug的版本......在实现程序的时候才发现要考虑的东西真是多啊
对方提供的方法签名如下
bool Test( char [] input, char[] regex)
{
//这里是你的代码
}
返回true 代表匹配
返回false代表不匹配
PS:我自己现在对一些基本的东西非常不敏感...例如怎么把char[] 转成 string, 还有指针和index的 可能是太久没动这些东西了....