您的位置:首页 > 教育 > 培训 > 网站策划案范文_网页空间和数据库的区别_百度指数有什么参考意义_googleplay

网站策划案范文_网页空间和数据库的区别_百度指数有什么参考意义_googleplay

2025/5/10 19:59:48 来源:https://blog.csdn.net/2303_78940834/article/details/143496091  浏览:    关键词:网站策划案范文_网页空间和数据库的区别_百度指数有什么参考意义_googleplay
网站策划案范文_网页空间和数据库的区别_百度指数有什么参考意义_googleplay

题目

在这里插入图片描述
链接:leetcode

思路分析

这道题目的解法太多了,主要思路还是hash,

这里讲一下简化hash表的方法,也就是我们提到的位图思想。

位图 (Bitmap) 是一种基于位操作的数据结构,用于表示一组元素的集合信息。它通常是一个仅包含0和1的数组,其中每个元素对应集合中的一个元素。位图中的每个位(或者可以理解为数组的元素)代表一个元素是否存在于集合中。当元素存在时,对应位的值为1;不存在时,对应位的值为0。

具体的讲,我们以int为例
int占四个字节,共32个bit位
我们在每个bit位都可以存数据,因为是二进制位,所以只能存0和1
在这道题目中,我们可以用0来表示字符存在,1表示字符不存在
题目中只包含小写字符,所以32个bit完全够用。

我们遍历字符串的每一个字符,
当发现字符对应的下标在位图中为1的时候,就代表字符已经存在过,返回false
否则,将其置为1,继续下一个字符的判断。

具体热河判断某一位为1,等位运算的操作,可以看之前的博客中的讲解
传送门:常见位运算技巧总结

代码

bool isUnique(string astr) {int bitMap = 0;for(auto& e:astr){int n = e - 'a';if(((bitMap >> n) & 1) == 1)//已经存在了return false;bitMap |= (1 << n);//标记}   return true;}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com