描述

使用STL中的search函数,判断一个序列是否是另一个序列的子序列。

部分代码已经给出,请补充完整,提交时请勿包含已经给出的代码。

  1. int main()
  2. {
  3. vector<int> vec1, vec2;
  4. int n, m, a;
  5. cin>>n>>m;
  6. while(n--)
  7. {
  8. cin>>a;
  9. vec1.push_back(a);
  10. }
  11. while(m--)
  12. {
  13. cin>>a;
  14. vec2.push_back(a);
  15. }
  16. Check(vec1, vec2);
  17. return 0;
  18. }

输入

第一行为一个正整数n和m,n和m为元素个数(n<=1000)。

第二行有n个整数,表示序列1的所有元素。

第三行有m个整数,表示序列2的所有元素。

输出

如果序列2是序列1的子序列,则输出所在子序列的始末位置。

否则输出None。

样例输入

5 2
1 3 2 4 5
3 2

样例输出

2 3

  1. #include <iostream>
  2. #include <algorithm>
  3. #include <vector>
  4. using namespace std;
  5. void Check(vector<int > &vec1,vector<int> &vec2)
  6. {
  7. vector<int >::iterator iter1,iter2;
  8. int k=;
  9. for(iter2=vec2.begin();iter2!=vec2.end();iter2++)
  10. k++;
  11. iter1=search(vec1.begin(),vec1.end(),vec2.begin(),vec2.end());
  12. if(iter1!=vec1.end()) cout<<int(iter1-vec1.begin())+<<" "<<int(iter1-vec1.begin())+k<<endl;
  13. else cout<<"None"<<endl;
  14. }
  15. int main()
  16. {
  17. vector<int> vec1, vec2;
  18. int n, m, a;
  19. cin>>n>>m;
  20. while(n--)
  21. {
  22. cin>>a;
  23. vec1.push_back(a);
  24. }
  25. while(m--)
  26. {
  27. cin>>a;
  28. vec2.push_back(a);
  29. }
  30. Check(vec1, vec2);
  31. return ;
  32. }

STL之search的更多相关文章

  1. stl binary search

    stl binary search */--> pre { background-color: #2f4f4f;line-height: 1.6; FONT: 10.5pt Consola,&q ...

  2. leetcode@ [34] Search for a Range (STL Binary Search)

    https://leetcode.com/problems/search-for-a-range/ Given a sorted array of integers, find the startin ...

  3. C++ STL Binary search详解

    一.解释 以前遇到二分的题目都是手动实现二分,不得不说错误比较多,关于返回值,关于区间的左闭右开等很容易出错,最近做题发现直接使用STL中的二分函数方便快捷还不会出错,不过对于没有接触过的同学,二分函 ...

  4. c++ STL find search

    #include <iostream>#include <algorithm>#include <deque>#include <list>#inclu ...

  5. STL 简介,标准模板库

    这篇文章是关于C++语言的一个新的扩展--标准模板库的(Standard Template Library),也叫STL.  当我第一次打算写一篇关于STL的文章的时候,我不得不承认我当时低估了这个话 ...

  6. STL中list用法

    本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂.不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函 ...

  7. STL list链表的用法详解

    本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂.不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函 ...

  8. list用法详解

    在这里感谢大牛们的奉献!此致敬礼! 本文转载自百度文库.作者如下.其中下面的count, count_if等函数的使用有些陈旧,如在编译时遇到问题,请百度. 标准模板库(STL)介绍 作者:Scott ...

  9. AwesomePerfCpp 性能优化

    Contents Talks Articles Sites/Blogs Tools Libraries Books About Talks 2013: Going Native 2013 - Andr ...

随机推荐

  1. ES6学习笔记(四)—— async 函数

    await 是 async wait 的简写, 是 generator 函数的语法糖. async 函数的特点: async 声明一个方法是异步的,await 则等待这个异步方法执行的完成 async ...

  2. 如何去掉Json字符串中反斜杠

    做项目的时候,遇到了这样的问题,前台传来的Json字符串在实体类中不对应(无法转换为实体类),而且传来的数据项是跟着数据库中的表的变动而变动的(不能重写实体类). 前台Json字符串为: string ...

  3. HDU1013 Digital Roots

    http://acm.hdu.edu.cn/showproblem.php?pid=1013 #include<iostream> #include "cstdio" ...

  4. JAVA【一】

    1,abstract可以修饰什么?为什么不能修饰属性 --abstract是抽象的意思,在java中,规定只能修饰类或者方法,所以不能修饰属性. (1)abstract修饰类,会使这个类成为一个抽象类 ...

  5. BroadCastRecieve

    首先介绍一下BroadCastRecieve有几种: 1.无序广播(普通广播):sendBroadcast()方式 2.有序广播:sendOrderedBroadcast()方式 3.粘性广播:sen ...

  6. 【git】git提交忽略不必要的文件或文件夹

    对于经常使用Git的朋友来说,.gitignore配置一定不会陌生.废话不说多了,接下来就来说说这个.gitignore的使用. 首先要强调一点,这个文件的完整文件名就是".gitignor ...

  7. Codeforces 219D Choosing Capital for Treeland 2次DP

    //选择一个根使得变换最少边的方向使得能够到达所有点#include <map> #include <set> #include <list> #include & ...

  8. java中final修饰符的使用

    1.final修饰符的用法: final可以修饰变量,被final修饰的变量被赋初始值之后,不能对它重新赋值. final可以修饰方法,被final修饰的方法不能被重写. final可以修饰类,被fi ...

  9. jQuery中操作样式

    操作行间样式 // 获取div的样式 $("div").css("width"); $("div").css("color&quo ...

  10. ccf-I’m stuck!

      给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七个字符中的一个,分别表示如下意思: '#': 任何时候玩家都不能移动到此方格: ' ...