当前位置:   article > 正文

7-42 实验7_7_连续子序列 (100 分)_本关任务:对于一个浮点数序列a,只包含正数,找到一个连续子序列,使得该子序列中元

本关任务:对于一个浮点数序列a,只包含正数,找到一个连续子序列,使得该子序列中元

已知两个由正整数组成的无序序列A、B,每个序列的元素个数未知,但至少有一个元素。你的任务是判断序列B是否是序列A的连续子序列。假设B是“1 9 2 4 18”,A是“33 64 1 9 2 4 18 7”,B是A的连续子序列;假设B是“1 9 2 4 18”,A是“33 1 9 64 2 4 18 7”,B不是A的连续子序列。

输入格式:

依次输入两个乱序的正整数序列A、B,序列中元素个数未知,但每个序列至少有一个元素,并以输入“-1”结束(-1不算序列中元素),每个序列占一行。两个数列的长度均不超过1000。

输入保证合法,且所有整数均可用int存储。

输出格式:

如果序列B是序列A的连续子序列,则输出“ListB is the sub sequence of ListA.”,否则输出“ListB is not the sub sequence of ListA.”。

输入样例:

  1. 5 4 3 2 1 -1
  2. 3 2 1 -1

输出样例:

ListB is the sub sequence of ListA.
  1. #include<stdio.h>
  2. int main()
  3. {
  4. int a[1000],b[1000],c[1000];
  5. int m=-1,n=-1;
  6. int i;
  7. int k=0,d=1;
  8. while(a[m]!=-1)
  9. {
  10. m++;
  11. scanf("%d",&a[m]);
  12. }
  13. while(b[n]!=-1)
  14. {
  15. n++;
  16. scanf("%d",&b[n]);
  17. }
  18. for(i=0;i<m;i++)
  19. {
  20. if(a[i]==b[0])
  21. {
  22. c[k]=i;
  23. k++;
  24. }
  25. }
  26. while(k!=0)
  27. {
  28. d=0;
  29. k--;
  30. for(i=0;i<n;i++)
  31. {
  32. if(a[c[k]+i]!=b[i])
  33. d++;
  34. }
  35. if(d==0)
  36. break;
  37. }
  38. if(d==0)
  39. printf("ListB is the sub sequence of ListA.\n");
  40. else
  41. printf("ListB is not the sub sequence of ListA.\n");
  42. return 0;
  43. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/秋刀鱼在做梦/article/detail/805017
推荐阅读
相关标签
  

闽ICP备14008679号