⽂件匹配
回专题模式回学习阶段模式
【题⽬名称、来源】
⽂件匹配(noi97day1-3)
【问题描述】
⽂件匹配
试题:
在计算机的⽇常操作中,经常需要对当前⽬录下的⼀部分⽂件进⾏操作. 例如, 将当前⽬录下的所有⽂本⽂件复制另⼀个⽬录下:将当前⽬录下所有以a 打头的⽂件删除;等等.
很多操作系统都采⽤正则表达式来实现⽂件匹配功能. ⼀种简单的正则表达
式是由英⽂字母(区分⼤⼩写),数字及通配符"*"和"?"任意组合⽽成的."?" 代表
任意⼀个字符,"*"代表零个或多个字符.
例如:
a*b 可以匹配acb(*代表c)
可以匹配aabb(*代表ab)
可以匹配asdsfdfdb(*代表sdsfdfd)
可以匹配ab(*不代表任何字符)
a*b 不可以匹配ac(缺少最右边的字母b)
不可以匹配bb(缺少最左边的字幕a)
不可以匹配abbc(最右边的字幕不是b)
a?b 可以匹配acb(?代表c)
不可以匹配ab(缺少中间的⼀个字符)
不可以匹配accb(?只能代表⼀个字符)
现在要求对某⽬录下的部分⽂件进⾏操作.写⼀个程序,寻⼀个正则表达式, 使其能匹配的待操作⽂件最多但不能匹配任何不进⾏操作的⽂件. 注意你所的
最优正则表达式的长度应当是最短的.如果有多个长度最短的最优正则表达式,只
需输出其中的任意⼀个.
输⼊输出:
输⼊⽂件是INPUT.TXT.⽂件由N(1<=N<=250)⾏组成.每⾏给出⼀个⽂件名(由英⽂字母和数字组成,英⽂字符要区分⼤⼩写,⽂件名长度不超过8个字符), 其后是⼀个空格符和⼀个字符("+"或"-")."+"表⽰要对该⾏给出的⽂件进⾏操作,"-" 表⽰不进⾏操作.
输出⽂件是OUTPUT.TXT.⽂件由两⾏组成.第⼀⾏是⼀个整数, 给出了你的程
序所到的最优正则表达式所能匹配的⽂件数⽬. 在第⼆⾏给出你的程序所到
的最优正则表达式.
[输⼊样例]:
EXCHANGE +
EXIT +
ext +
hardware + MOUSE - NETwork -[输出样例]
2
E*
【所属专题】
正则匹配多行动态规划
【适合学习阶段】第⼆阶段
【解题思路】
问题分析:
存储结构:【测试数据】
【源程序】

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。