一道关于查找的算法题
是我在别处看见的,没有什么思路,跪求各位大侠给个思路,谢了。
注意:请尽可能详细描述你的数据结构、系统架构、设计思路等。建议多写一些伪代码或者流程说明。
1. 考虑一个字符串替换的过程,在一个文本文件中含有一些文本内容和一些需要替换的变量,变量的格式为“$Var$”,原来的“$”使用“$$”进行转义,原来的“$$”表示为“$$$”。我们将含有变量的文件称为模板(文件名为t),文本文件的平均长度为100K。另外,还有一系列的变量文件,里面为变量名和变量值的对应关系(文件名为1.v , 2.v… n.v),每个变量文件包含的变量数在百万数量级,且变量排列次序不定。现要求将,模板里的变量分别用变量文件里的变量替换,并将生成的文件写成(1.r, 2.r… n.r)。
要求:从算法和实现上和实现技术上的细节对程序进行优化,尽量使程序高效。程序运行环境为2G内存,4CPU。阐明主要思路,给出伪码和说明,可以着重指出你使用的优化技术。
例子:模板文件为
This is an $FF$ $$. I like $FF$ and $FA$。
变量文件为
1.v
FF : banana
FA : apple
2.v
FA: 苹果
FF : 香蕉
则生成文件为
1.r
This is an banana $$. I like banana and apple。
2.r
This is an香蕉 $$. I like 香蕉and苹果。
[解决办法]
值得学习,
[解决办法]
强烈建议你用脚本来做这个东西,或者引入一个c++的正则表达式类。
如果用脚本perl的话,就是一个正则式替换的问题,缺点是脚本语言的速度可能会比较慢。
如果引入c++的正则式类的话,应该问题也比较简单,缺点是很多c++的正则表达式的表示方式比较混乱。
[解决办法]
要效率就不用脚本,简单的读出写入文件就可以了,中间判断一下$并进行处理。
[解决办法]