题目
为了对一些资料进行保密,奶牛们要对某些文章进行编辑。编辑的方法很奇特:要把原有文章的某些词句按照某些规则用另一些词句代替。
规则的形式如下:原串新串,表示把原串替换成新串。假设有n条规则,第i规则的原串和新串分别为Mi和Ni,则编辑按如下过程进行:开始编辑时,先使用第一条规则,把文章中出现的第一个M1替换成N1,如果替换后的新文章还存在M1,则如上处理,直到文章不存在M1为止;然后用同样的方法使用第2,第3,……,第n条规则进行替换,直到所有的规则都用完为止。
注意:
每次都要从文章开头开始找要替换的词句
一条规则一旦使用完后,将不能再使用
每一篇文章都是可编辑的
如有四条规则:1. banbab 2. bababe 3. anaany 4. ba b hind the g 要编辑的文章为“banana boat”,则编辑的过程如下:
编辑后的文章为“behind the goat”。请编写一序,帮助组委会对给定的文章进行编辑。
数据存放在当前目录下的文本文件“editing.in”中。
文件共有2n+2行。文件的第一行是一个整数n(1<=n<=10),表示规则的数目;接下来第2i行及第2i+1行分别表示Mi和Ni(1<=i<=n),其长度均不超过80个字符,且Mi不为空串;最后一行是要编辑的文章,长度不超过80个字符。行末没有空格。
答案输出到当前目录下的文本文件“editing.out”中。
文件只有一行,表示编辑后的文章(长度不超过80个字符)。行末也应该没有空格。
题解
字符串处理,对于pacal很简单,c++要了解并熟练掌握字符串的各种运用
然后我就打了p
代码
var
n,i,j,k:longint;
s,r:array[1..10]of string;
t:ansistring;
begin
readln(n);
for i:=1 to n do
begin
readln(s[i]);
readln(r[i]);
end;
readln(t);
for i:=1 to n do
begin
j:=pos(s[i],t);
while j>0 do
begin
delete(t,j,length(s[i]));
insert(r[i],t,j);
j:=pos(s[i],t);
end;
end;
writeln(t);
end.