「优选算法刷题」:判定字符是否唯一
一、题目
实现一个算法,确定一个字符串 s 的所有字符是否全都不同。
示例 1:
输入: s = "leetcode" 输出: false
示例 2:
输入: s = "abc" 输出: true
限制:
0 <= len(s) <= 100s[i]仅包含小写字母
二、思路解析
这道题我是用位图思想做出来的。
用每⼀个「比特位」代表⼀个字符,比特位里面如果是 0 ,表示这个字符没有出现过。比特位里面的值是 1 ,表示该字符出现过。
首先题目说了,仅包含小写字母,那一个 int 类型的 32 位就足够表示了,甚至还比 26 位多了一丁点空间,不过浪费这点无所谓。
算法实现就是这样了,听简短的,但代码实现却挺多细节的,具体实现请看下面代码👇
三、完整代码
class Solution {public boolean isUnique(String astr) {int len = astr.length();if(len > 26){return false;}int bitMap = 0;for(int i = 0 ; i < astr.length() ; i ++){int x = astr.charAt(i) - 'a';if(((bitMap >> x) & 1) == 1){return false;}bitMap |= 1 << x;}return true;}
}
以上就是本篇博客的全部内容啦,如有不足之处,还请各位指出,期待能和各位一起进步!
相关文章:
「优选算法刷题」:判定字符是否唯一
一、题目 实现一个算法,确定一个字符串 s 的所有字符是否全都不同。 示例 1: 输入: s "leetcode" 输出: false 示例 2: 输入: s "abc" 输出: true限制: 0 < len(s) < 100 s[i]仅包含小写字母 二…...
详解自定义类型:枚举与联合体!
目录 编辑 一、枚举类型 1.枚举类型的声明 2.枚举类型的优点 3.枚举类型的使用 二、联合体类型(共用体) 1.联合体类型的声明 2.联合体的特点 3.相同成员的结构体和联合体的对比 4.联合体大小的计算 5.用联合体判断大小端 三.完结散花 悟已往之不谏&…...
第13章 网络 Page738~741 13.8.3 TCP/UDP简述
libcurl是C语言写成的网络编程工具库,asio是C写的网络编程的基础类型库 libcurl只用于客户端,asio既可以写客户端,也可以写服务端 libcurl实现了HTTP\FTP等应用层协议,但asio却只实现了传输层TCP/UDP等协议。 在学习http时介绍…...
Tomcat要点总结
一、Tomcat 服务中部署 WEB 应用 1.什么是Web应用 (1) WEB 应用是多个 web 资源的集合。简单的说,可以把 web 应用理解为硬盘上的一个目录, 这个目录用于管理多个 web 资源。 (2)Web 应用通常也称之为…...
Ubuntu 20.04 安装RVM
RVM是管理Ruby版本的工具,使用RVM可以在单机上方便地管理多个Ruby版本。 下载安装脚本 首先使下载安装脚本 wget https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer 如果出现了 Connection refused 的情况, 可以考虑执行以下命令修改dns,再执…...
Ps:污点修复画笔工具
污点修复画笔工具 Spot Healing Brush Tool专门用于快速清除图像中的小瑕疵、污点、尘埃或其他不想要的小元素。 它通过分析被修复区域周围的内容,无需手动取样,自动选择最佳的修复区域来覆盖和融合这些不完美之处,从而实现无痕修复的效果。 …...
JAVA面试题17
什么是Java中的静态内部类?它与非静态内部类有什么区别? 答案:静态内部类是定义在另一个类中的类,并且被声明为静态。与非静态内部类不同,静态内部类不依赖于外部类的实例,可以直接访问外部类的静态成员。 …...
数据备份和恢复
数据备份和恢复 什么情况下会用到数据备份呢 数据丢失的场景 人为误操作造成的某些数据被误操作 软件BUG造成数据部分或者全部丢失 硬件故障造成数据库部分或全部丢失 安全漏洞被入侵数据恶意破坏 非数据丢失场景 基于某个时间点的数据恢复 开发测试环境数据库搭建 相同数据库的…...
核心篇 - 集成IS-IS配置实战
文章目录 一. 实验专题1.1. 实验1:配置单区域集成IS-IS1.1.1. 实验目的1.1.2. 实验拓扑1.1.3. 实验步骤(1)配置IP地址(2)配置IS-IS 1.1.4. 实验调试(1)查看邻接表(2)查看…...
【OpenAI Sora】开启未来:视频生成模型作为终极世界模拟器的突破之旅
这份技术报告主要关注两个方面:(1)我们的方法将各种类型的视觉数据转化为统一的表示形式,从而实现了大规模生成模型的训练;(2)对Sora的能力和局限性进行了定性评估。报告中不包含模型和实现细节…...
MVC 、DDD、中台、Java SPI(Service Provider Interface)
文章目录 引言I 单体架构DDD实现版本1.1 核心概念1.2 DDD四层架构规范1.3 案例1.4 请求转发流程II 领域服务调用2.1 菱形对称架构2.2 中台III Java SPI3.1 概念3.2 实现原理3.3 例子:本地SPI找服务see alsojava -cp</...
C++单例模式的实现
单例模式就是在整个程序运行期都只有一个实例。在代码实现方面,我们要限制new出多于一个对象这种情况的发生。而不是仅仅依靠无保障的约定。 目前大多数的编程语言的做法都是私有化构造函数,对外提供一个获取实例的接口。这样做的目的使实例的创建不能在…...
rust函数 stuct struct方法 关联函数
本文结合2个代码实例主要介绍了rust函数定义方法,struct结构体定义、struct方法及关联函数等相关基础知识。 代码1: main.rc #[derive(Debug)]//定义一个结构体 struct Ellipse {max_semi_axis: u32,min_semi_axis: u32, }fn main() {//椭圆࿰…...
浅谈基于中台模式的大数据生态体系的理解
这篇文章主要浅谈一下我对大数据生态体系建设的理解。 大数据生态系统为高并发,高吞吐,高峰值,高堆积等大规模数据的采集,处理,计算,存储,服务提供了完善的处理体系,致力于打造核心数…...
MySQL的锁机制
一:概述 锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢); 在数据库中,除传统的计算资源(如CPU,RAM,I/O等)的争用以外,数据也是一种供许多用…...
已解决ImportError: cannot import name ‘PILLOW_VERSION‘异常的正确解决方法,亲测有效!!!
已解决ImportError: cannot import name PILLOW_VERSION异常的正确解决方法,亲测有效!!! 文章目录 问题分析 报错原因 解决思路 解决方法 总结 在Python项目开发中,依赖管理是保证项目正常运行的关键环节。然而&…...
力扣:300. 最长递增子序列
动态规划: 1. 先定义dp数组来表示在下标为i时最长递增子序列,先初始化一下每个下标的值为dp【i】1。同时我们要判断在下标i之前的最长的递增子序列为多少,在判断当前的下标i是否满足递增的条件满足的话就进行dp【i】的重新赋值。之后要更新接受的最长递…...
Swing程序设计(10)列表框,文本框,文本域,密码框
文章目录 前言一、列表框二、文本框(域) 1.文本框2.文本域三、密码框总结 前言 该篇文章简单介绍了Java中Swing组件里的列表框、文本框、密码框。 一、列表框 列表框(JList)相比下拉框,自身只是在窗体上占据固定的大小…...
【Java八股面试系列】JVM-常见参数设置
目录 堆内存相关 显式指定堆内存–Xms和-Xmx 显式新生代内存(Young Generation) 显式指定永久代/元空间的大小 垃圾收集相关 垃圾回收器 GC 日志记录 处理 OOM JDK监控和故障处理工具总结 堆内存相关 Java 虚拟机所管理的内存中最大的一块,Java 堆是所有线…...
【Python--Web应用框架大比较】
🚀 作者 :“码上有前” 🚀 文章简介 :Python 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 Django Django太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不…...
M9A:重返未来1999自动化助手 - 解放双手的智能游戏管家
M9A:重返未来1999自动化助手 - 解放双手的智能游戏管家 【免费下载链接】M9A 重返未来:1999 小助手 | Assistant For Reverse: 1999 项目地址: https://gitcode.com/gh_mirrors/m9/M9A 你是否厌倦了每天重复刷取《重返未来:1999》的日…...
NCM解密终极指南:3步解锁网易云音乐加密文件
NCM解密终极指南:3步解锁网易云音乐加密文件 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲,却发现只能在官方客户端播放,无法在其他设备或播放器上欣赏&…...
华为昇腾PTO指令集优化SSA架构Gather操作
华为昇腾的PTO(Pipeline Tensor Operations)指令集通过其异构流水线、内存层次优化和软硬件协同设计,为优化亚二次注意力(SSA)架构中的不规则Gather(聚集)操作提供了系统性的解决方案。这些优化…...
Linux内核动态调试技术:pr_debug与dynamic_debug实战指南
1. 动态输出:内核调试的“可控探针”在Linux内核开发与调试的日常里,最让人头疼的莫过于“日志”问题。printk虽然直接,但一旦开启,信息洪流会瞬间淹没控制台,不仅影响性能,更让你在关键信息里大海捞针。更…...
27考研er必备的那些学习工具!
对2027考研人来说,备考不是简单地“埋头刷题”,而是一场关于信息筛选、资源整合、时间管理和学习效率的长期战役。面对公共课、专业课、院校信息、经验帖、课程资源等海量内容,选对工具往往能让复习少走弯路。 以下这些平台和网站,…...
CANape测量启动报错“存储空间不足”的系统性排查与解决方案
1. 问题现象与根源剖析如果你是一名汽车电子工程师,或者从事车辆标定、诊断与测试工作,那么CANape这个软件对你来说,就像吃饭用的筷子一样熟悉。它强大的测量、标定和诊断功能,是我们在开发过程中不可或缺的利器。然而,…...
LizzieYzy:围棋AI分析工具的三大突破,让你拥有职业棋手的复盘能力
LizzieYzy:围棋AI分析工具的三大突破,让你拥有职业棋手的复盘能力 【免费下载链接】lizzieyzy LizzieYzy - GUI for Game of Go 项目地址: https://gitcode.com/gh_mirrors/li/lizzieyzy 还记得上次输掉一盘棋后,你花了多少时间复盘寻…...
【NotebookLM高阶假设工程】:为什么87%的研究者卡在第2步?3类典型失效模式+实时调试SOP
更多请点击: https://intelliparadigm.com 第一章:NotebookLM假设构建辅助 NotebookLM 是 Google 推出的基于用户上传文档进行可信问答与推理的 AI 工具,其核心能力之一是支持“假设构建”(Hypothesis Generation)——…...
Linux 进程间通信(IPC)详解:终于搞懂管道、消息队列、共享内存到底在干什么
很多人第一次学 Linux 进程间通信(IPC)时,都会有一种感觉:概念很多 API 很杂 学完还是不知道到底什么时候该用什么最容易出现的问题是:管道和消息队列有什么区别?为什么共享内存最快?信号量到底…...
HYCONTROL MICROFLEX-DB超声波液位计实操详解(参数+工况+故障排查)
在工业液位测量中,腐蚀性介质、罐内干扰、泡沫水汽、后期维护量大一直是现场普遍痛点,很多中小型储罐、水池、反应罐都会纠结性价比高、调试简单、稳定性强的超声波液位计。今天给大家详细拆解一款进口紧凑型液位变送器:英国HYCONTROL海康MIC…...
