微软面试题, 美国 Asp.net Team 第一面 , 正则

这个面试题是 朋友面试美国微软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的 可能是太久没动这些东西了....

原文地址:https://www.cnblogs.com/PurpleTide/p/1992183.html