var a,b:string;
lb,i,s:integer;
begin
readln(b);
readln(a);
lb:=length(b); s:=0;
repeat
i:=pos(b,a);
if i<>0 then
begin
delete(a,i,lb);
s:=s+1;
end;
until i=0;
writeln(s);
end.
我这样为什么不行!只能过两组数据!!o(︶︿︶)o 唉
状态: Unaccepted
测评机: Xeost[5]
得分: 20分
提交日期: 2010-8-6 14:37:00
有效耗时: 219毫秒
测试结果1: 通过本测试点|有效耗时172ms
测试结果2: 测试结果错误.错误结果为:11
正确结果应为:3476
测试结果3: 输出过少|用户输出数据少于标准输出的50%[标准输出5位|选手输出1位]
测试结果4: 输出过少|用户输出数据少于标准输出的50%[标准输出5位|选手输出1位]
测试结果5: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]
测试结果6: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]
测试结果7: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]
测试结果8: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]
测试结果9: 输出过少|用户输出数据少于标准输出的50%[标准输出4位|选手输出1位]
测试结果10: 通过本测试点|有效耗时47ms
program qing;
var s1:string;s2:ansistring;l1:0..255;i,l2:longint;
z:longint;
procedure find(var x:longint);
var i:0..512000;
begin
if x<1 then exit;
for i:=x-l1+1 to x do
if i>=1 then
if copy(s2,i,l1)=s1 then
begin
x:=i;exit;
end;
end;
begin
readln(s1);read(s2);
l1:=length(s1);
z:=0;i:=1;
l2:=length(s2);
while (i+l1-1)<=l2 do
begin
if (i>=1)and(copy(s2,i,l1)=s1) then
begin
inc(z);delete(s2,i,l1);
dec(i);
find(i);
end
else
inc(i);
end;
write(z);
end.
不过第八个测试数据似乎错了。做过这个题的人都认为这样。