主题:电话号码对应英文单词 急急急!请大家帮忙,时间有限啊~~~
1、[color=FF0000][u][b]使用线性表、树或者Hash表等数据结构及查找相关算法[/b][/u][/color]编写一个实现输入法功能的程序,就好比用手机的电话号码输入单词一般,词典、查询文件以及输出结果文件由外部文件给出!
2、码本文件格式
每次测试都将给出一个词典(eg, codebook.txt),每个词典包含以下信息:
A 25
ABILITY 1
ABOUT 1
ADDED 1
AFFLUENT 1
……
词典中的条目按每行一条的顺序排列。词典共由两列组成,第一列为词条,第二列为对应的每个词条的频度得分,得分越高的词条出现的概率越大。词典中所有的字母都是用大写表示的。每个词条的字符数最多不会超过25个(含25个)。一行的字符数最多不会超过30个(含30个)——注意,一个制表符\t是一个字符。
注意:词条在文件中的先后顺序没有任何意义,词条与得分之间用“空格”或(与)“\t”组成的串分隔;词条之间用回车分隔;词典的最后一行不为空行。
3、查询文件格式
每次测试将同时给出一个查询文件,每个独立的查询文件中包含了多个输入的请求数字串:
266
2245489
1
因为我们的手机键盘上与字母相对应的数字只有2~9这八个数字,但是0,1,#,*键也是可以输入的,即可以包含在查询文本中,同学需要对这样的情况进行考虑;对于查询文件为空的情况也应进行考虑。
注意:每个请求数字串之间用回车分隔;查询文件的最后一行不为空行。
4、输出文件格式
每次测试将产生一个查询结果的输出文件,针对上面的查询文件和我们给同学的码本,所得的查询结果输出文件如下所示:
266
2 COME BOND
1 AMONG
1 ANNOUNCED
3 CONGESTION CONFERENCE CONSCIENCE
1 CONSTITUENTS
1 CONSIDERATION
2245489
1 ABILITY
1
0
在查询结果文件中,不同的查询数字串的查询结果之间用1到2个回车符分隔。同一个查询数字串的查询结果之间不能有多余的空行。
对于每一个查询数字串,第一行输出该数字串,从第二行开始输出查询到的字符串结果:第二行为仅使用查询文件中的数字作为输入,得到的搜索结果(如果存在);下一行为使用查询文件中的数字作为输入,并以任意1个附加字符作为后缀时得到的结果(如果存在);下一行为使用查询文件中的数字作为输入,并以任意2个附加字符作为后缀时得到的结果(如果存在)……依此类推。
对于每一行搜索结果,首先输出查询到的匹配码本的个数,然后输出匹配的码本,个数与码本之间,码本与码本之间用空格符分隔。匹配的多个码本需要进行排序后输出,首先按照得分高低进行排序,对于得分相同的码本则按照字符串的大小顺序由小到大排列2。
当没有与输入的数字串相匹配的码本时输出0。如上面的例子中数字串1的查询结果为0。
当查询文件为空的情况,查询结果文件也应该为空。
注意:程序要求采用程序接口参数定义即整个程序的主函数用 main(argc,argv)实现参数传递。程序根据该字符串读取码本文件路径、查询文件路径和输出结果文件路径等参数。
注:本题的来源貌似是《编程之美——微软技术面试心得》
谢谢大家了!!!!![em2][em2][em2]
2、码本文件格式
每次测试都将给出一个词典(eg, codebook.txt),每个词典包含以下信息:
A 25
ABILITY 1
ABOUT 1
ADDED 1
AFFLUENT 1
……
词典中的条目按每行一条的顺序排列。词典共由两列组成,第一列为词条,第二列为对应的每个词条的频度得分,得分越高的词条出现的概率越大。词典中所有的字母都是用大写表示的。每个词条的字符数最多不会超过25个(含25个)。一行的字符数最多不会超过30个(含30个)——注意,一个制表符\t是一个字符。
注意:词条在文件中的先后顺序没有任何意义,词条与得分之间用“空格”或(与)“\t”组成的串分隔;词条之间用回车分隔;词典的最后一行不为空行。
3、查询文件格式
每次测试将同时给出一个查询文件,每个独立的查询文件中包含了多个输入的请求数字串:
266
2245489
1
因为我们的手机键盘上与字母相对应的数字只有2~9这八个数字,但是0,1,#,*键也是可以输入的,即可以包含在查询文本中,同学需要对这样的情况进行考虑;对于查询文件为空的情况也应进行考虑。
注意:每个请求数字串之间用回车分隔;查询文件的最后一行不为空行。
4、输出文件格式
每次测试将产生一个查询结果的输出文件,针对上面的查询文件和我们给同学的码本,所得的查询结果输出文件如下所示:
266
2 COME BOND
1 AMONG
1 ANNOUNCED
3 CONGESTION CONFERENCE CONSCIENCE
1 CONSTITUENTS
1 CONSIDERATION
2245489
1 ABILITY
1
0
在查询结果文件中,不同的查询数字串的查询结果之间用1到2个回车符分隔。同一个查询数字串的查询结果之间不能有多余的空行。
对于每一个查询数字串,第一行输出该数字串,从第二行开始输出查询到的字符串结果:第二行为仅使用查询文件中的数字作为输入,得到的搜索结果(如果存在);下一行为使用查询文件中的数字作为输入,并以任意1个附加字符作为后缀时得到的结果(如果存在);下一行为使用查询文件中的数字作为输入,并以任意2个附加字符作为后缀时得到的结果(如果存在)……依此类推。
对于每一行搜索结果,首先输出查询到的匹配码本的个数,然后输出匹配的码本,个数与码本之间,码本与码本之间用空格符分隔。匹配的多个码本需要进行排序后输出,首先按照得分高低进行排序,对于得分相同的码本则按照字符串的大小顺序由小到大排列2。
当没有与输入的数字串相匹配的码本时输出0。如上面的例子中数字串1的查询结果为0。
当查询文件为空的情况,查询结果文件也应该为空。
注意:程序要求采用程序接口参数定义即整个程序的主函数用 main(argc,argv)实现参数传递。程序根据该字符串读取码本文件路径、查询文件路径和输出结果文件路径等参数。
注:本题的来源貌似是《编程之美——微软技术面试心得》
谢谢大家了!!!!![em2][em2][em2]