今天遇见的一外企面试题(发100分,一起讨论,共同进步)

thunderhun 2009-11-05 02:00:25
以下txt是开发人员对一个代码库的修改历史。请用C,C++或C#来编写一个词法分析(Parse)程序来提取以下要求的字段组成的修改纪录,并将结果写入一个或多个文件中。字段之间(field)用'|'分隔。具体分析的结果要求如下:

a) 每个纪录应包含下列字段:

Change ID: 给每项修改记录分配一个唯一的序号。
Changed Date: 提取原始修改记录中的MM/DD/YYYY格式的日期。
Changed By: 提取原始修改记录中紧跟在日期之后的开发人员名字。
Summary: 提取原始修改记录中由'*)'给出的修改摘要。
Description: 提取原始修改记录中由'Description:'给出的修改说明。
Purpose: 提取原始修改记录中由'Purpose:'给出的修改目的说明。
Changed Files: 提取原始修改记录中由'Changed Files:'给出的修改文件列表。
Added Files: 提取原始修改记录中由'Added Files:'给出的新增文件列表。

b) 请用'*)'作为一项修改的标示(而不是日期)。因为一个开发人员在同一天可以做多项修改。在同一日期下的多个'*)'应被分割成多个修改纪录。

c) 在"Description:"下可能会有多项由"-"给出的说明项。




txt:
Change History:

11/12/2004, Simon
*) Added this file.


11/16/2004, Johnason
*) Support saving TDF file
Changed Files: SystemConfig.cpp/h
Added files: TDF.cpp/h
Description:
- Add NIST_SUPPORT in cls_cls.cfg
- Add cls_nist.cfg. A sample and explaination is put in misc
- Add a new class CTDF, which calls some functions of lscvt.lib
and tdf.lib.
Comments:
- CTDF need to be enhanced. The basic idea is to use a base class for
initing, reading existing TDF file and saving repacked TDF file. No
binding data (a virtual function) in base class. Three new class will
be derived from the base class to bind three kinds of data: from
WinCtrlSet, cls_nist.cfg, images. Then ClsMain and ClsDataEntry can
call different class as they required.

11/23/2004, Johnason
*) Florida payment interface
Changed files: SystemConfig.cpp/h
Description:
- It map FirstName, LastName, MidName, SufName before. Now it only map
the Name field.

*) Flat App Version
Changed files: SystemConfig.cpp/h
Description:
- Read nFlatAppVersion in Cls_cls.cfg


12/01/2004, Johnason
*) Add code to delete transactions from nist_ipa, nist_ipa_pm, nist_ipa_print,
nist_ipa_print_pm
Changed files:
- SystemTrans.cpp
- SystemTransNew.cpp
- SystemTrans.h
Description:
- Add one new function: CLSTransDeleteException
- Call this new function in CLSTransDeleteRec() and CLSTransNewDeleteRec()
- In this case, these four tables should not be put in INFO_TABLE. Before
we put them into it, which will cause a bug: When the transaction has
exception and has been scanned, the exception will be removed if user
views demo and saves it.

我看到这个题的第一印象是正则,不知道各位什么看,过几天发俺写的代码~一起讨论,共同进步,绝对结贴发分!
...全文
549 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
lidowx 2009-11-13
  • 打赏
  • 举报
回复
接分
thunderhun 2009-11-12
  • 打赏
  • 举报
回复
自己已经解决,呵呵,发分了~
luichi 2009-11-12
  • 打赏
  • 举报
回复
顶一下,学习
tisipy 2009-11-12
  • 打赏
  • 举报
回复
呵呵呵呵!谢谢您能帮助我们,为我们提供资料
zhangrenhui 2009-11-07
  • 打赏
  • 举报
回复
UP
wei_june 2009-11-06
  • 打赏
  • 举报
回复
看看
zhijializhangcao 2009-11-06
  • 打赏
  • 举报
回复
留个脚印
继续关注
oyzdz1988 2009-11-06
  • 打赏
  • 举报
回复
嗯,顶一个
绿色夹克衫 2009-11-05
  • 打赏
  • 举报
回复
题目看起来比较费神,但感觉用正则应该可以。其实正则本身也是靠DFA的。
perfecttt 2009-11-05
  • 打赏
  • 举报
回复
最近也在研究文件读写,发现解析字符串太麻烦了,而且大量的文件解析起来效率太低了。正则功能很强大,但是对正则了解的不多。
thunderhun 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 shenyan0712 的回复:]
貌似根据词法分析,如果只用语言本身实际,从正则——》NFA--》DFA——》代码 实现应该不难吧
[/Quote]
嗯,我自己正在写,到时写完了看效果怎么样~
主要是想写好一点。
thunderhun 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bvbook 的回复:]
求职面试,看《编程之美——微软技术面试心得》即可
[/Quote]
不过,这本书里面没有词法分析相关,里面与str有关的只有一篇:《计算字符串的相似度》
不知道你是看的那版,哈哈
thunderhun 2009-11-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bvbook 的回复:]
求职面试,看《编程之美——微软技术面试心得》即可
[/Quote]
谢谢,正在找这本书啃啃,因为我觉得很多时候公司是对功能的要求,而对代码本身要求不是很多
arczee 2009-11-05
  • 打赏
  • 举报
回复
貌似根据词法分析,如果只用语言本身实际,从正则——》NFA--》DFA——》代码 实现应该不难吧
bvbook 2009-11-05
  • 打赏
  • 举报
回复
求职面试,看《编程之美——微软技术面试心得》即可
wifewifewife 2009-11-05
  • 打赏
  • 举报
回复
关注一下,顺便帮你顶一下.

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧