首页 > 学院 > 开发设计 > 正文

算典03_习题_09_POJ-1936

2019-11-08 03:04:00
字体:
来源:转载
供稿:网友

All in All

题意

求字符串a是否在字符串b内,即b是否可以去掉某些字符得到a

题解

这是一道水题 只要从左到右遍历一遍两个字符串就行了,其中每次b的下标都+1,而a的下标只有当值与b匹配时才+1 这样如果最后a的下标遍历到头了,则为Yes,否则为No

#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int maxn = 1e5 +5;#define met(a,b) memset(a, b, sizeof(a));char a[maxn], b[maxn];int main(){ #ifdef _LOCAL freopen("in.txt","r", stdin); #endif // _LOCAL while(scanf("%s%s", a, b) == 2){ int len1 = strlen(a); int len2 = strlen(b); if(len1 > len2){PRintf("Yes/n");continue;} int i, j; for(i = 0, j = 0; i < len1 && j < len2;++j){ if(a[i] == b[j]){ ++i; } } if(i == len1)printf("Yes/n"); else printf("No/n"); } return 0;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表