//给定两个分别由字母组成的字符串A和字符串B,
//字符串B的长度比字符串A短。
//请问,如何最快地判断字符串B中所有字母是否都在字符串A里?
#include<stdio.h>
#include<string>
using namespace std;
bool StringContain(string &a, string &b)
{
int hash = 0;
for (int i = 0; i < a.length(); ++i)
{
hash |= (1 << (a[i] - 'A'));
}
for (int i = 0; i < b.length(); ++i)
{
if ((hash & (1 << (b[i] - 'A'))) == 0)
{
return false;
}
}
return true;
}
int main() {
string a = "WPX";
string b = "CC";
bool result = StringContain(a, b);
if (result) {
printf("包含");
}
else printf("不包含 ");
getchar();
}
字符串包含算法
最新推荐文章于 2022-11-28 16:11:37 发布