博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串是否包含的问题
阅读量:4185 次
发布时间:2019-05-26

本文共 1078 字,大约阅读时间需要 3 分钟。

//先进行排序bool compare(string &s1, string &s2){    int i = 0;    int j = 0;    sort(s1.begin(), s1.end());    sort(s2.begin(), s2.end());    //下面是线性扫描时间复杂度为O(M+N),因为其已经排序好了    while (i < s1.length() && j < s2.length())    {        while (s1[i] < s2[j] && i < s1.length() - 1)            i++;//直到找出不小于s2的元素        if (s1[i] != s2[j])            return false;        j++;    }    if (j == s2.length())        return true;    else        return false;}//哈希表的方法//考虑的是大写的元素//时间复杂度为O(n),空间复杂度O(n)bool compare1(string &s1, string &s2){    int hash[26] = { 0 };    int index = 0;    int num = 0;    //扫描短的字符串    for (int i = 0; i < s2.length(); i++)    {        int index = s2[i] - 'A';//变成int类型        if (hash[index] == 0)        {            hash[index] = 1;            num++;//即看hash表中存放了多少个字母        }    }    for (int i = 0; i < s1.length(); i++)    {        index = s1[i] - 'A';        if (hash[index] == 1)        {            num--;            if (num == 0)//表示所有的s2中字母在s1中都找到了                break;        }    }    if (num == 0)        return true;    else        return false;}

转载地址:http://vidoi.baihongyu.com/

你可能感兴趣的文章
HTML5学习之——HTML 5 服务器发送事件
查看>>
SVG学习之——HTML 页面中的 SVG
查看>>
mysql中用命令行复制表结构的方法
查看>>
hbase shell出现ERROR: org.apache.hadoop.hbase.ipc.ServerNotRunningYetException
查看>>
解决Rhythmbox乱码
查看>>
豆瓣爱问共享资料插件发布啦
查看>>
kermit的安装和配置
查看>>
linux中cat命令使用详解
查看>>
java中的异常机制
查看>>
商务智能-基本方法-数据钻取
查看>>
openstack ice resize 详解(三)
查看>>
事务与锁(转)
查看>>
Namenode HA原理详解(脑裂)
查看>>
Differences between VMware FT and HA(转)
查看>>
Cloud Prizefight: OpenStack vs. VMware(转)
查看>>
亚马逊Auto Scaling
查看>>
openstack-instance-high-availability-Evacuate
查看>>
evacuate-instance-automatically
查看>>
pycharm常用设置(keymap设置及eclipse常用快捷键总结)
查看>>
关于在openstack的环境变量.bashrc自定自己简化命令
查看>>