题目:
算法思想:本来应该是哈希的,但是你会发现运行时间比较大,主要原因是这道题数据比较小,所以我们可以换一种做法。因为都是字符,直接创建一个数组控制ASCII是否出现过,然后查找很方便。
代码:
int numJewelsInStones(string J, string S) {
vector<bool > a(256);
for(int i = 0;i < J.length();i++)
{
a[J[i] ] = true;
}
int count = 0;
for(int i = 0;i < S.length();i++)
if(a[S[i] ] == true)
count++;
return count;
}
本文介绍了一种优化的字符匹配算法,通过使用数组控制ASCII字符的出现情况,实现了快速查找和计数,避免了哈希算法在小数据集上的运行时间问题。
368

被折叠的 条评论
为什么被折叠?



