字符串是否包含有素数方法和移位方式
代码如下:
//copyright@ luuillu
//July、updated,2011.04.24。
#include <iostream>
using namespace std;
//判断 des 是否包含在 src 中
bool compare(char *des,char * src)
{
unsigned index[26]={1,2,4,8,16,32,64,128,256,512,1024,1<<11,
1<<12,1<<13,1<<14,1<<15,1<<16,1<<17,1<<18,1<<19,
1<<20,1<<21,1<<22,1<<23,1<<24,1<<25}; //2的n次幂
unsigned srcdata=0;
unsigned desdata=0;
while( *src)
srcdata|=index[(*src++)-'A'];
while(*des)
desdata|=index[(*des++)-'A'];
return (srcdata|desdata) == srcdata ;
}
int main()
{
char *src="ABCDEFGHLMNOPQRS";
char *des="DCGSRQPOM";
cout<<compare(des,src)<<endl;
return 0;
}