字符串包含 位运算法

来源:互联网 发布:h3c msr5660软件版本 编辑:程序博客网 时间:2024/05/14 11:53
/*description:    长字符串s1,和短字符串s2    判断s2是否是s1的子集。    字母都是大写。    是输出true    否输出false使用位运算法,相当于每个位作为一个hash值。author: JasonZhoudate:  2016-03-10*/#include <iostream>using namespace  std;bool StringContain(string s1,string s2){    int hash=0;    for (int i=0;i<s1.length();i++)    {        hash|=(1<<(s1[i]-'A'));    }    //cout<<hex<<hash<<endl;    for (int m=0;m<s2.length();m++)    {        if ( ( hash& (1<<(s2[m]-'A'))) ==0 )        {            return false;        }    }    return true;}int main(){    string s1="AFCGHMN";    string s2="AMN";    if(StringContain(s1,s2))        cout<<"true"<<endl;    else        cout<<"false"<<endl;    return 0;}
1 0
原创粉丝点击