【位运算】Leetcode 判定字符是否唯一

embedded/2024/12/22 14:26:55/

题目解析

在这里插入图片描述


算法讲解

正常思路:使用unordered_map判断并保存每一个字符出现的次数,如果当前的字符在添加到Hash之前已经出现了一次了,直接返回false,反之循环结束返回true

优化思路:可以使用位图来充当Hash表,过程中只需要判断某一位是否为1,将某一位置1的操作

小优化:因为题目上解释只有小写字母,所以如果当前的str.size() > 24 的话,说明一定有重复字符,直接return false

class Solution {
public:bool isUnique(string str) {if(str.size() > 24) return false;int hash = 0;//位图  保存每个字符串出现的次数  0:没有出现  1:出现过for(auto ch : str){int index = ch - 'a';if((1 << index) & hash)return false;hash |= (1 << index);}return true;}
};


http://www.ppmy.cn/embedded/1890.html

相关文章

项目之旅(前两周)

文章目录 学习总结input1.text 文本框2.password 密码框3.button 按钮4.file 文件还可定义上传类型 5.日期6.radio 单选框7. checkbox 复选框 项目总结生活总结 学习总结 input 本次写项目时才发现&#xff0c;input有很多种用法&#xff0c;这里列举几种 1.text 文本框 不…

阿里云4核16G服务器可以用来做什么?

阿里云4核16G服务器可以用来做什么&#xff1f;可用来搭建游戏服务器&#xff0c;阿里云4核16G服务器10M带宽30元1个月、90元3个月&#xff0c;优惠活动 aliyunfuwuqi.com/go/youhui 阿里云4核16G服务器可以用来做什么&#xff1f;除了搭建游戏服务器&#xff0c;还可以用来哪…

网络协议学习——以太网协议

目录 ​编辑 一&#xff0c;以太网简介 二&#xff0c;以太网通信的过程 为什么不用IP地址&#xff1f; 过程 MAC帧 MAC帧的字段介绍 ARP协议 传输过程的一些问题 RARP协议 提高效率 三&#xff0c;其他问题 ARP诈骗问题 URL解析过程 一&#xff0c;以太网简介 …

Java刷题API

因为经常用Java刷题&#xff0c;记录一下常用到的API 数组 1. 定义&#xff08;两种方法&#xff09; type arrayName[]; //第一种 type[] arrayName; //第二种//eg int arrayName[] new int[5]; int[] arrayName new int[5];//二维数组 int arrayName[][] new int[5][5]…

数据结构从入门到实战——顺序表

目录 前言 一、顺序表的概念及结构 1.1 线性表 二、顺序表分类 三、动态顺序表的实现 3.1 顺序表结构的创建以及初始化 3.2 顺序表的销毁 3.3 顺序表的打印 3.4 尾插数据 ——最困难的 3.5 头插数据 3.6 尾删数据 3.7 头部删除数据 前言 在计算机科学和数据结…

深入浅出理解CSS中的文本样式与排版:探索文字之美

在Web设计与开发的广阔天地里&#xff0c;CSS&#xff08;层叠样式表&#xff09;对于网页文本的呈现与排版起着举足轻重的作用。CSS中与文本相关的属性繁多而细致&#xff0c;涵盖了字体选择、大小调整、颜色填充、对齐方式、缩进、间距调整以及更多高级样式处理。本文将以通俗…

web安全学习笔记(11)

记一下第十五节课的内容。 一、创建MySQL执行函数 我们在function.php中&#xff0c;自定义一个函数&#xff1a; #SQL查询函数 function Qurey($sql) {#连接数据库$db new mysqli(172.20.10.3, liuyan, 123456, liuyan, 3306);#判断是否连接成功if (mysqli_connect_errno(…

2024年150道高频Java面试题(三十二)

63. 线程的 run() 和 start() 有什么区别&#xff1f; 在Java中&#xff0c;run()方法和start()方法是线程操作中的两个核心方法&#xff0c;它们来自于Thread类。 run()方法&#xff1a; run()方法是一个线程的实际执行代码所在的方法。它是一个由Runnable接口定义的抽象方…