当前位置: 首页 > article >正文

位图算法——判断唯一字符

这道题有多种解法,可以创建hash数组建立映射关系判断,但不用新的数据结构会加分,因此我们有“加分”办法——用位图。

我们可以创建一个整型变量(32位)而一共才26个字母,所以我们只要用到0-25位即可,0代表没有,1代表有,先判断该位是否为1,为1直接返回false,为0把该为标记为1进行下一次判断。

可优化的细节:如果字符串长度>26直接不符(鸽巢原理)

bool isunique(string astr)
{//优化if(astr.size()>26)return false;int bitmap=0;for(auto ch:astr){int i=ch-'a';//对应位图关系if((bitmap>>i)&1==1)return false;bitmap|=(1<<i);}return true;
}

http://www.lryc.cn/news/2384031.html

相关文章:

  • HarmonyOS 鸿蒙应用开发基础:父组件调用子组件方法的几种实现方案对比
  • 复盘20250522
  • 【UE5】环形菜单教程
  • Athena 执行引擎:在线服务计算的效率王者
  • 飞桨paddle ‘ParallelEnv‘ object has no attribute ‘_device_id‘【已解决】
  • Bert预训练任务-MLM/NSP
  • 微信小程序之Promise-Promise初始用
  • 准备好,开始构建:由 Elasticsearch 向量数据库驱动的 Red Hat OpenShift AI 应用程序
  • spring的注入方式都有什么区别
  • RNN神经网络
  • Linux | 开机自启动设置多场景实现
  • 杨校老师竞赛课之青科赛GOC3-4年级组模拟题
  • 设计杂谈-工厂模式
  • SC3000智能相机-自动存图
  • (高级)高级前端开发者指南:框架运用与综合实战
  • 【Java高阶面经:微服务篇】5.限流实战:高并发系统流量治理全攻略
  • 2025中青杯数学建模B题思路+模型+代码
  • 记录:uniapp 上线部署到微信小程序vendorjs包过大的问题
  • 如果教材这样讲--碳膜电阻、金属氧化膜电阻、金属膜电阻、保险丝电阻、绕线电阻的区别和用途
  • Vue 3.0中异步组件defineAsyncComponent
  • dedecms织梦全局变量调用方法总结
  • 新手到资深的Java开发编码规范
  • asp.net core 添加 EntityFrame
  • 微软全新开源的Agentic Web网络项目:NLWeb,到底是什么 ?
  • Idea出现 100% classes 等
  • 【学习笔记】计算机操作系统(五)—— 虚拟存储器
  • 构建基于全面业务数据的大数据与大模型企业护城河战略
  • centos系统redis-dump安装
  • 乘最多水的容器 | 算法 | 给定一个整数数组。有n条垂线。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。
  • Python项目文件组织与PyCharm实践:打造高效开发环境