问题:
实现一个挺高级的字符匹配算法:
给一串很长字符串,要求找到符合要求的字符串,例如目的串:123
1******3***2 ,12*****3这些都要找出来
其实就是类似一些和谐系统。。。。。
答案:
//20130323
#include <iostream>
#include <bitset>
#include <string>
using namespace std;
bool isfit(string const dest, string const sour);
int main()
{
string s1 = "123";
string s2 = "123456";
bool b = isfit(s2, s1);
cout<<b<<endl;
return 0;
}
bool isfit(string const dest, string const sour)
{
bitset<256> bitmaps(0);
int n;
for (int i = 0; i < sour.length(); i++)
{
n = (int)sour[i];
bitmaps[n] = 1;
}
for (int i = 0; i < dest.length(); i++)
{
n = (int)dest[i];
if (bitmaps[n] == 1)
{
bitmaps[n] = 0;
}
}
if (bitmaps.none())
{
return true;
}
else
{
return false;
}
}