当前位置: 代码迷 >> 综合 >> 习题3-9 子序列
  详细解决方案

习题3-9 子序列

热度:3   发布时间:2024-01-25 08:42:45.0

我写的,用了两个for循环,没有很好的利用变量的特点,革命尚未成功,同志还需努力

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
#define maxn 1000
int main()
{char s[maxn],t[maxn];scanf("%s",s);scanf("%s",t);int slen=strlen(s);int tlen=strlen(t);int c=0;int count=0;for(int i=0; i<tlen; i++){for(int j=c; j<slen; j++){if(t[i]==s[j]){c=j;count++;break;}}}if(count==tlen){printf("找到");}else{printf("没找到");}
}

看了别人写的/(ㄒoㄒ)/~~

#include <stdio.h>
#include <string.h>char a[1000], b[1000];
int main() {while (~scanf("%s%s", a, b)) {int star = 0, lenb = strlen(b), lena = strlen(a);for (int i = 0; i < lenb; i ++) {if (a[star] == b[i])star ++;if (star == lena) {printf("Yes\n");break;}}if (star != lena)printf("No\n");}return 0;
}

 

  相关解决方案