[POJ1936]All in All

本文介绍了一种使用双指针技术判断一个字符串是否为另一个字符串子串的C/C++实现方法。通过对比两个字符串的每个字符,实现字符串匹配,最终确定是否为子串。

题目大意:读入两个字符串$s1$和$s2$,要你判断$s1$是不是$s2$的子串。

思路:模拟,用$a1$,$a2$两个指针表示当前判断到的位置。如果$s1[a1]$等于$s2[a2]$,则$s1$+1,$s2$+1,否则$s2$+1。最后如果所有字符全都判断成功,则输出“Yes”,否则“No”。(看似很长,实际上很简单)

 

C/C++ Code:

 

 1 #include<stdio.h>
 2 #include<string.h>
 3 char s1[100005],s2[100005];
 4 int main(){
 5     while(scanf("%s %s",s1,s2)!=EOF){
 6         int a1=0,a2=0,l1=strlen(s1),l2=strlen(s2);
 7         while(a1!=l1&&a2!=l2){
 8             if(s1[a1]==s2[a2])a1++;
 9             a2++;
10         }
11         if(a1==l1)puts("Yes");else
12         puts("No");
13     }
14     return 0;
15 }

 

转载于:https://www.cnblogs.com/Mrsrz/p/6885848.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值