判定字符是否唯一

题目链接

判定字符是否唯一

题目描述

注意点

  • 0 <= len(s) <= 100
  • s[i]仅包含小写字母

解答思路

  • 首先想到的是使用数组存储字母是否出现过,如果多次出现则直接返回false
  • 为了不适用额外的数据结构,可以使用位运算判定字符是否唯一,思路为:根据ASCII码计算字母与’a’的差值idx,将1左移idx位与num做与运算,如果结果为1,说明num在这之前已经与1左移idx位进行了或运算,之前出现过该字母,直接返回false,否则将1左移idx位与num做或运算

代码

方法一:

class Solution {public boolean isUnique(String astr) {if (astr.length() > 26) {return false;}int[] arr = new int[26];for (char c : astr.toCharArray()) {if (arr[c - 'a'] != 0) {return false;}arr[c - 'a'] = 1;}return true;}
}

方法二:

class Solution {public boolean isUnique(String astr) {if (astr.length() > 26) {return false;}int num = 0;for (char c : astr.toCharArray()) {int idx = c - 'a';// 左移idx位为1,说明该字母已经出现过if ((num & (1 << idx)) != 0) {return false;}num = (num | (1 << idx));}return true;}
}

关键点

  • 位运算的思想

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/13538.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第8章 原生MVC服务框架一

1 组件化重构 1.1 分而治之 分而治之(Divide and Conquer)是一种软件设计原则,它的核心思想是将大问题分解成小问题,以便更容易地解决。 具体而言,该原则建议将复杂的软件系统分解成更小、更易于管理的模块。每个模块都应该具有清晰的目标和职责,以便更容易理解、测试和…

Wpf 使用 Prism 实战开发Day22

客户端添加IDialogService 弹窗服务 在首页点击添加备忘录或待办事项按钮的时候&#xff0c;希望有一个弹窗&#xff0c;进行相对应的内容添加操作。 一.在Views文件夹中&#xff0c;再创建一个Dialog 文件夹&#xff0c;用于放置备忘录和待办事项的弹窗界面。 1.1 备忘录&…

Python 全栈体系【四阶】(五十二)

第五章 深度学习 十二、光学字符识别&#xff08;OCR&#xff09; 2. 文字检测技术 2.1 CTPN&#xff08;2016&#xff09; 2.1.1 概述 CTPN全称Detecting Text in Natural Image with Connectionist Text Proposal Network&#xff08;基于连接文本提议网络的自然图像文本…

是德科技 DSOS104A MSOS104A示波器

产品 带宽 通道数 最大存储器深度 DSOS104A 高清晰度示波器 1 GHz 4 个模拟通道 800 Mpts MSOS104A 高清晰度示波器 1 GHz 4 个模拟通道和 16 个数字通道 800 Mpts 商品介绍 …

JavaEE-文件IO1

文章目录 一、什么是文件IO?1.1 IO1.2 文件1.2.1 路径1.2.2 文件分类 二、使用Java针对文件系统进行操作 一、什么是文件IO? 1.1 IO IO分别代表Input和Output即输入和输出。比如我的电脑可以从网络上下载文件&#xff0c;也可以通过网络上传文件或者我把我的内存中的数据保…

Vue 离线地图实现

效果图&#xff1a; 一、获取市的地图数据 DataV.geoAtlas 获取市地图数据 点击地图缩放至想要的市区域&#xff0c;通过右侧的链接打开网址&#xff0c;复制json数据。 二、获取镇地图数据 选择你想要的镇数据&#xff0c;点击下载 选择级别&#xff08;清晰度&#xff09…

Plotly数据可视化宝典

一、引言 在数据驱动的时代,数据可视化已成为不可或缺的一部分。通过图形化的方式展示数据,我们能更直观地理解数据的内在规律和趋势。Plotly,作为一款强大的数据可视化工具,以其丰富的图表类型、交互性和灵活性,赢得了广大数据科学家的青睐。本宝典将深入解析Plotly的各…

mysql存储比特位

一、介绍 二、SQL CREATE TABLE bits_table (id INT PRIMARY KEY AUTO_INCREMENT,bit_value BIGINT UNSIGNED );-- 插入一个 8 位的 BIT 值 INSERT INTO bits_table (bit_value) VALUES (B10101010);-- 查询并格式化输出 SELECT id,bit_value,CONCAT(b, LPAD(BIN(bit_value),…

Midjourney绘画关键词参数汇总(二)

本文将继续介绍Midjourney绘画关键词参数的汇总&#xff0c;探索其在数字绘画中的应用和潜力。本文主要是提供与主题相关的关键词供大家参考学习。 大家感兴趣的话&#xff0c;可以在下列Midjourney中文版系统中体验&#xff1a;https://ai.easyaigx.com 一、日本漫画主题关键…

MGRE实验——路由配置

对134环回 ping一下发现都可以通 配置3&#xff0c;4同3 再注册 然后内网要互通&#xff0c;起rip 宣告1的左边和右边 对3 对4 当3&#xff0c;4之间要互通时&#xff0c;首先在1上 关闭之后&#xff0c;3就能学到4上的用户网段&#xff0c;4也能学到3 局域网要访问广域网一定…

大数据学习之 Hadoop部署

Hadoop部署 Linux桌面模式关闭 # 设置 systemctl set-default multi-user.target # 重启 reboot防火墙关闭 systemctl status firewalld systemctl stop firewalld # 关闭开机自启 systemctl disable firewalld配置Java环境 echo $JAVA_HOME java -version # Java配置 # 上传ja…

【贪心算法题目】

1. 柠檬水找零 这一个题目是一个比较简单的模拟算法&#xff0c;只需要根据手里的钱进行找零即可&#xff0c;对于贪心的这一点&#xff0c;主要是在20元钱找零的情况下&#xff0c;此时会出现两种情况&#xff1a;10 5 的组合 和 5 5 5 的组合&#xff0c;根据找零的特点&a…

容器监控方案

1、docker部署prometheus Prometheus是一套开源的系统监控报警框架&#xff0c;它基于时序数据库&#xff0c;并通过HTTP协议周期性地从被监控的组件中抓取指标数据。以下是一些关于Prometheus的详细介绍&#xff1a; 基本概念&#xff1a;Prometheus所有采集的监控数据均以指…

VUE3注册指令的方法

指令注册只能全局指令和选项式页面指令,composition api没有页面指令 选项式页面指令 <template><div class"home"><h3>自定义指令</h3><div class"from"><el-input type"text" v-focus v-model"name&q…

“壕无人性”的沙特也要买量子计算机!巨头沙特阿美的合作方竟是它?

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨浪味仙 排版丨沛贤 深度好文&#xff1a;1200字丨5分钟阅读 摘要&#xff1a;石油巨头沙特阿美与 Pasqal 开启合作&#xff0c;计划于 2025 年部署一台 200 量子比特的量子计算机&#xff…

uniapp星空效果

uniapp星空效果 背景实现思路代码实现尾巴 背景 之前在网上看到过一个视频&#xff0c;使用纯css实现过一个星空效果。具体出处找不到了&#xff0c;我们按照他那个思路来实现一个类似的效果&#xff0c;还是先上一张图镇楼&#xff1a; 实现思路 首先我们这个效果使用的是…

添加辅小区

4G 5G添加辅小区都是通过rrcConnectionReconfiguration消息的SCellToAddMod 4G -sCellToReleaseList-r10 :: SEQUENCE OF OPTIONAL:Omit-sCellToAddModList-r10 :: SEQUENCE OF SIZE(1..maxSCell-r10[4]) [1] OPTIONAL:Exist| -SCellToAddMod-r10 :: SEQUENCE [111]| -sCell…

python安装路径可以更改吗

Python3.5默认安装路径是当前用户的 AppData\.. 下 现在安装过程中默认是install just for me&#xff0c;这个会把python默认安装到AppData文件夹中&#xff0c;如果选了install for all users&#xff0c;就会默认安装到C盘根目录了。 python3.5 安装&#xff1a; 输入官网…

【论文速读】|探索ChatGPT在软件安全应用中的局限性

本次分享论文&#xff1a;Exploring the Limits of ChatGPT in Software Security Applications 基本信息 原文作者&#xff1a;Fangzhou Wu, Qingzhao Zhang, Ati Priya Bajaj, Tiffany Bao, Ning Zhang, Ruoyu "Fish" Wang, Chaowei Xiao 作者单位&#xff1a;威…

Linux命令和工具:包管理器工具yum命令使用详解

一、yum包管理器概述 Yum&#xff08;Yellowdog Updater Modified&#xff09;是一个非常流行的Linux包管理器&#xff0c;主要用于RPM包管理系统。它能够帮助用户安装、升级、降级和删除RPM包&#xff0c;同时也可以检索有关RPM包的信息。换一句话说&#xff0c;yum允许用户从…