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

位运算-面试题01.01.判定字符是否唯一-力扣(LeetCode)

一、题目解析

1、s[i]仅包含小写字母

2、字符串的长度为[0,100]

二、算法原理

解法1:哈希表

用哈希表记录s[i]的字符,如果有重复的,则返回false

优化1:由于s[i]中只有小写字母,所以可以创建一个int hash[26]的数组,0代表字符a

解法2/优化2:位图

一个int有32个比特位,我们可以用一个比特位代表一个小写字母,‘a’用0位比特位表示,0表示字符未存在,1表示字符存在

位运算公式:

 

三、代码示例

class Solution {
public:bool isUnique(string astr){if(astr.size() > 26) return false;int n = 0;for(auto& e : astr){if(((n>>(e-'a')) & 1) == 1)return false;if(((n>>(e-'a')) & 1) == 0)n |= (1<<(e-'a'));}return true;}
};

 

 

看到最后,如果对您有所帮助,还请点赞、收藏和关注,我们下期再见! 

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

相关文章:

  • 第三方采购流程
  • 机械学习中的一些优化算法(以逻辑回归实现案例来讲解)
  • Python----MCP(MCP 简介、uv工具、创建MCP流程、MCP客户端接入Qwen、MCP客户端接入vLLM)
  • 字节跳动招机器人数据算法研究员-Top Seed
  • 机器学习04——初识梯度下降
  • Thymeleaf 模板引擎原理
  • Java多态度(3)
  • 前端开发(HTML,CSS,VUE,JS)从入门到精通!第二天(CSS)
  • Linux选择
  • van list 重复进入onload
  • 一个强大的向量数据库——Milvus
  • chroma、faiss和milvus三者之间的区别和联系
  • 浏览器无痕模式机制解析:它与正常模式究竟有何不同?
  • 热能小车cad【12张】三维图+设计说明书
  • React + ts + react-webcam + CamSplitter 实现虚拟摄像头解决win摄像头独占的问题
  • LangChain框架入门03:PromptTemplate 提示词模板
  • evo_traj的参数设置及保存图片
  • React 19 革命性升级:编译器自动优化,告别手动性能调优时代
  • RAGFLOW~Enable RAPTOR
  • 机器学习sklearn:随机森林的决策树
  • OPENGLPG第九版学习 - 纹理与帧缓存 part2
  • 数据结构学习基础和从包装类缓存到泛型擦除的避坑指南
  • C++入门基础 2
  • C语言使用GmSSL库实现sm3、sm4算法
  • Linux----信号
  • Docker学习其二(容器卷,Docker网络,Compose)
  • cocosCreator2.4 googlePlay登录升级、API 35、16KB内存页面的支持
  • 特征工程 --- 特征提取
  • (一)LoRA微调BERT:为何在单分类任务中表现优异,而在多分类任务中效果不佳?
  • 【C++】类和对象 上