回 帖 发 新 帖 刷新版面

主题:几个记录题木

(这个不是..)1.一个简单的行编辑程序,用户输入一个多行的字符序列,总数不大于250.
若用户发现前一个字符是错的就输入一个退格符#,表示前一个字符无效.若错误太多,则输入一个退行符@,表示当前行中的字符无效.(如果已经在行首,则输入#无效).
样例输入:
whil##ilr#e(s#*s)
outcha@putchar(*s=#++);
样例输出:
while(*s)
putchar(*s++)
2.给定一篇有英文单词,逗号,句号和空格组成的文章.要求统计里面出现过的单词次数,按从多到少排序输出到文件中,次数相同的按字典顺序排序.
3.score.dat地一行为正整数N,以下为N位同学的田径成绩.顺序是编号,姓名,跳高,跳远,百米跑.编号由5位数组成,且第1位为0.姓名不超过20个字符.跳高不超过2米,跳远不超过3米,百米跑不超过132秒,不小于9秒.请你统计.将三项竞赛的前三名的各项成绩输出到score.out.
4.求最长公共子串.对于给定的N(N<20)个字符串,串长不超过100,求N个字符串的最长公共子串.

回复列表 (共11个回复)

11 楼

5楼的问题:

其实我的程序真的会出现你说的问题。
比如:3个字符串a、b、c:
a = '42312456458'
b = '1246564538'
c = '23124665658'
它们的最长公共子串是'124',但是我的程序:
substring(a, b) = '5645'
substring('5645', c) = '56'
这样输出结果就是56,不是124。

解决这个问题的办法是:从长到短依次找到所有字符串中最短字符串的所有子串(包括这个字符串本身),然后依次判断找出的子串是不是都是其它各字符串的子串,是,表示目前的子串就是结果。

我来回复

您尚未登录,请登录后再回复。点此登录或注册