微軟面試題, 美國 Asp.net Team 第一面 , 正則
這個(gè)面試題是 朋友面試美國微軟asp.net team的時(shí)候第一面的問題,一般來說第一面都會(huì)比較簡單.....
1. 對方通過郵件和livemeeting 把題目發(fā)給你
2. 這個(gè)題目要求提供最終代碼(C#)
3. 限制時(shí)間30分鐘, 包括閱讀文檔和提交代碼的時(shí)間..(其實(shí)是一個(gè)小時(shí)2個(gè)題目啦..不過另外一個(gè)和這個(gè)差不多困難,另外這個(gè)文檔真是相當(dāng)?shù)拈L...說的很清楚)
4. 該最終代碼必須可以編譯,運(yùn)行,并實(shí)現(xiàn)以下的業(yè)務(wù)功能
業(yè)務(wù)功能:
設(shè)計(jì)一個(gè)正則表達(dá)式解析器支持:
常量查找 例如表達(dá)式是abc 就匹配abc , a就匹配a ,長度無限制
\d 匹配一個(gè)數(shù)字
\d+
轉(zhuǎn)義 \\ \\d 之類的
傳入的正則表達(dá)式可能類似 dafdfa\dfa\dd\d+++ddfga434
想起來是很簡單...但是時(shí)間只有半個(gè)小時(shí)....做起來就悲劇了
我自己試了一下,在沒有準(zhǔn)備的情況下,差不多用了40-50分鐘才能完成一個(gè)有bug的版本......在實(shí)現(xiàn)程序的時(shí)候才發(fā)現(xiàn)要考慮的東西真是多啊
對方提供的方法簽名如下
bool Test( char [] input, char[] regex)
{
//這里是你的代碼
}
返回true 代表匹配
返回false代表不匹配
PS:我自己現(xiàn)在對一些基本的東西非常不敏感...例如怎么把char[] 轉(zhuǎn)成 string, 還有指針和index的 可能是太久沒動(dòng)這些東西了....
浙公網(wǎng)安備 33010602011771號