zoukankan      html  css  js  c++  java
  • STL之search

    描述

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

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

     

    int main()
    {
        vector<int> vec1, vec2;
        int n, m, a;
        cin>>n>>m;
        while(n--)
        {
            cin>>a;
            vec1.push_back(a);
        }
        while(m--)
        {
            cin>>a;
            vec2.push_back(a);
        }
        Check(vec1, vec2);
        return 0;
    }

    输入

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

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

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

    输出

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

    否则输出None。

    样例输入

     5 2
    1 3 2 4 5
    3 2

    样例输出

     2 3

    #include <iostream>
    #include <algorithm>
    #include <vector>
    using namespace std;
    void Check(vector<int > &vec1,vector<int> &vec2)
    {
        vector<int >::iterator iter1,iter2;
        int k=0;
        for(iter2=vec2.begin();iter2!=vec2.end();iter2++)
            k++;
        iter1=search(vec1.begin(),vec1.end(),vec2.begin(),vec2.end());
        if(iter1!=vec1.end()) cout<<int(iter1-vec1.begin())+1<<" "<<int(iter1-vec1.begin())+k<<endl;
        else cout<<"None"<<endl;
    }
    int main()
    {
        vector<int> vec1, vec2;
        int n, m, a;
        cin>>n>>m;
        while(n--)
        {
            cin>>a;
            vec1.push_back(a);
        }
        while(m--)
        {
            cin>>a;
            vec2.push_back(a);
        }
        Check(vec1, vec2);
        return 0;
    }

     

  • 相关阅读:
    页面跳转刷新
    表格表头绘制对角线(不固定表格宽高)
    发送邮件的工具类
    重写equals()和hashCode()
    设计模式--原型模式[转载]
    设计模式--外观模式
    设计模式--代理模式
    js处理json js递归
    MySQL锁详解
    开发一个微信小程序实例教程
  • 原文地址:https://www.cnblogs.com/andrew3/p/8894157.html
Copyright © 2011-2022 走看看