主题:输入两个串A和B,判断B是否是A的子串。是就‘yes’,否就‘no’(帮帮忙)
96131
[专家分:0] 发布于 2006-04-14 16:21:00
已经有很多朋友给出了很多好的思路,可惜我都没有编出来,很惭愧,只能在出请大家帮帮忙
回复列表 (共8个回复)
沙发
贺天行宝 [专家分:2300] 发布于 2006-04-15 15:07:00
var
s1,s2:string;
flag:boolean;
i,j,k,l1,l2:longint;
begin
write('big ');
readln(s1);
write('small ');
read(s2);
l1:=length(s1);l2:=length(s2);
i:=1;j:=1;
while (i<=l1)and(j<=l2) do
begin
flag:=false;
while (s2[j]<>s1[i])and(i<=l1) do inc(i);
if s1[i]=s2[j] then inc(j);
end;
if j>l2 then write('true') else write('false');
end.
加分阿
板凳
超级玛丽 [专家分:0] 发布于 2006-04-15 20:35:00
对于上面这帖,问个问题,那个flag做什么用的?还有一个问题,比如输入1234567 和13579 结果不也对吗这也可以算作子串吗?
3 楼
96131 [专家分:0] 发布于 2006-04-15 21:46:00
感谢了
4 楼
dorremon1992 [专家分:870] 发布于 2006-04-18 16:21:00
Begin
read(a,b);
len1:=lenght(a);
len2:=lenght(b);
f1:=TRUE
for i:=1 to len1 do begin
c:=a[i];f2:=TALSE;
for j:=1 to len2 do if c=b[j]then f2:=TRUE;
if f2=FALSE then f1:=FALSE;
end;
writeln(f1);
End.
5 楼
dorremon1992 [专家分:870] 发布于 2006-04-18 16:24:00
只需将第一个字符串中的每一个字符与第二个字符串相比较就行了
6 楼
maxumi [专家分:2200] 发布于 2006-04-19 15:59:00
fp里不是有一个pos函数吗?用那个不就行了?
7 楼
wangym5106 [专家分:10] 发布于 2009-02-04 17:40:00
var a,b:string;
begin
readln(a);
readln(b);
if pos(a,b)>0 then writeln('yes')
else writeln('no');
end.
8 楼
wangzhongqi96 [专家分:40] 发布于 2009-02-04 23:58:00
var
stri1,stri2:string;
begin
readln(stri1);
readln(stri2);
if pos(stri1,stri)=0 then writeln('no')
else writeln('yes');
end.
我来回复