【c语言压缩文本文件求解答!写出来再加10分!48压缩文本文-查字典问答网
分类选择

来自庞颂明的问题

  【c语言压缩文本文件求解答!写出来再加10分!48压缩文本文件成绩:5/折扣:0.8背景:压缩是一种有效的减小数据量的方法,目前已经被广泛应用于各种类型的信息系统之中。一种】

  c语言压缩文本文件求解答!写出来再加10分!

  48压缩文本文件

  成绩:5/折扣:0.8

  背景:

  压缩是一种有效的减小数据量的方法,目前已经被广泛应用于各种类型的信息系统之中。

  一种压缩文本文件的方法如下:

  1.原始文本文件中的非字母的字符,直接拷贝到压缩文件中;

  2.原始文件中的词(全部由字母组成),如果是第一次出现,则将该词加入到一个词的列表中,并拷贝到压缩文件中;否则该词不拷贝到压缩文件中,而是将该词在词的列表中的位置拷贝到压缩文件中。

  3.词的列表的起始位置为1。词的定义为文本中由大小写字母组成的最大序列。大写字母和小写字母认为是不同的字母,即abc和Abc是不同的词。词的例子如下:*x-ray包括两个词x和ray*mary's包括两个词mary和s*ac-Dec包括三个词a和c和Dec编写一个程序,输入为一组字符串,输出为压缩后的文本。

  输入:

  输入为一段文本,你可以假设输入中不会出现数字、每行的长度不会超过80个字符,并且输入文本的大小不会超过10M。

  输出:

  压缩后的文本。

  测试输入

  1.Please,pleasedoit--itwouldpleaseMaryvery,↵

  2.verymuch.↵

  3.↵

  4.Thanks↵

  期待输出

  1.Please,pleasedoit--4would2Maryvery,↵

  2.7much.↵

  3.↵

  4.Thanks↵

  测试输入1.Background↵

  2.↵

  3.Givenanmbyngridoflettersandalistofwords,findthelocationinthe↵

  4.gridatwhichthewordcanbefound.↵

  5.↵

  6.Awordmatchesastraight,uninterruptedlineoflettersinthegrid.Aword↵

  7.canmatchthelettersinthegridregardlessofcase(i.e.,upper-and↵

  8.lowercaselettersaretobetreatedasthesame).Thematchingcanbedonein↵

  9.anyoftheeighthorizontal,vertical,ordiagonaldirectionsthroughthegrid.↵

  10.↵

  11.Input↵

  12.↵

  13.Theinputbeginswithasinglepositiveintegeronalinebyitselfindicating↵

  14.thenumberofcases,followedbyablankline.Thereisalsoablankline↵

  15.betweeneachtwoconsecutivecases.↵

  16.↵

  17.Eachcasebeginswithapairofintegersmfollowedbynonasingleline,↵

  18.wherem,nindecimalnotation.Thenextmlinescontainnletterseach,↵

  19.representingthegridofletterswherethewordsmustbefound.Theletters↵

  20.inthegridmaybeinupper-orlowercase.Followingthegridofletters,↵

1回答
2020-04-09 17:25
我要回答
请先登录
陆伟宙

  可以考虑用一个map键值对来存放的首次出现单词,一个单词对应一个序号

  然后一行一行进行读取,对每一行里的字符只要不是字母就截取来和map、中已有的单词进行比较重复的就取出序号代替不重复的放进map

  这样就好了

  你需要一个获取单词的函数一个压缩单词的函数一个比较单词的函数

  把这3个函数做出来你的程序大致就好了

  这个你自己想比较好和简单其实

2020-04-09 17:28:23

最新问答

推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  •