首页 > 试题广场 >

考虑一个字符串替换的过程,在一个文本文件中含有一些文本内容和

[问答题]

注意:请尽可能详细描述你的数据结构、系统架构、设计思路等。建议多写一些伪代码或者流程说明。

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苹果。 1)此题10

对任意输入的正整数N,编写C程序求N!的尾部连续0的个数,并指出计算复杂度。如:18!=6402373705728000,尾部连续0的个数是3

(不用考虑数值超出计算机整数界限的问题)

数据结构、系统架构和设计思路:
1.模板a对应的数据结构:取出每个模板文件中的变量和常量,每2个一组形成关系数据库中的二维表结构,并设置主键ID,外键V。示例如下:
表名:a
ID     K V
1 This is an
FF
2  $$. I like 
FF
3    and 
FA
4  。
2.变量文件对应的数据结构:由于第个变量文件可能有百万的数量级,所以每个变量文件单独对应一张二维表:结构如下:
  表名:v1
ID     V V1
0 V#
1 FF
banana
2 FA
apple
……   …… ……
表名:v2
ID     V V2
V#
1 FF
香蕉
2 FA
苹果
…… …… ……
……
3.使用sql语句把每个要生成文件的内容存入目标表:
目标表1:r1
Insert into r1
select a.ID,a.k,v1.v
from a,
Insert into r2
select a.ID,a.k,v2.v
from a,v
where a.v=v2.v;
……
4.把目标表中的内容输入到对就的文件(1.r, 2.r n.r)
系统架构可以使用hadoop技术,充分利用集群的威力进行高速运算和存储
考虑的优化方法有建表索引、查询语法调整,数据倾斜处理等等。
发表于 2023-05-19 10:39:17 回复(0)