【力扣精选算法100道】——判定是否互为字符重排(哈希专题)

目录

🚩了解题意

🚩算法原理

第一种:排序

第二种方法:哈希

🚩实现代码






面试题 01.02. 判定是否互为字符重排 - 力扣(LeetCode)


🚩了解题意

我们输入俩个字符串,当俩个字符串按照字母顺序从小到大排序之后是一样的,那么说明俩个字符串重排。


🚩算法原理

第一种:排序

我们将s1和s2字符串排序,如果最后相等,那么就是重排字符串,如果最后不相等,那么就不是

但是我们可以提前声明   如果s1和s2字符串长度不相等,那么就直接返回false即可

第二种方法:哈希

本题只用让字符存入到hash中去,就只用数组定义哈希即可。

首先我们将s1字符串存入到hash表中去,然后遍历s2字符串,先让hash表中i下标对应的s2值个数减减,然后看是否个数<0,小于0说明肯定是没有出现过的,你看如果a存在s1中,b不存在s1中,那么a在s1中的个数是不是1,b在s1中的个数是不是0,如果我们遍历s2的时候,s2中存在b,那么先让b对应的个数在哈希表中--,b原先的个数是0,--之后是-1,那么小于0,我们就直接返回false,说明s1是不存在b的。


🚩实现代码

第一种:

class Solution {
public:bool CheckPermutation(string s1, string s2) {//如果俩个字符串长度不相等就直接falseif(s1.length()!=s2.length()){return false;}sort(s1.begin(),s2.end());sort(s2.begin(),s2.end());return s1==s2;
};

第二种: 

class Solution {
public:bool CheckPermutation(string s1, string s2) {//如果俩个字符串长度不相等就直接falseif(s1.length()!=s2.length()){return false;}vector<int>hash(128,0);//然后s1字符串存入到hash中for(int i=0;i<s1.length();i++){hash[s1[i]]++;}//遍历s2 先让当前的值在hash中个数--,如果减了之后小于0,说明没有出现这个单词//直接falsefor(int i=0;i<s2.length();i++){hash[s2[i]]--;if(hash[s2[i]]<0){return false;}}return true;}};

我觉得张老师是个很爱我的男孩。

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

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

相关文章

张雨霏同款食谱火了,冠军的健康饮食秘密被发现了

2024新一届奥运年到来之际&#xff0c;厨电集成灶领军品牌的森歌突然爆出要“让全民吃到‘冠军’餐”&#xff0c;一时让业界震惊&#xff0c;也让有集成灶消费欲求的消费者感到惊喜。 森歌集成灶的这个“豪言壮语”是来源于森歌联合国家体育总局训练局共同启动的“2024森歌冠…

jquery 后台返回的单选框按照两列展示

jquery代码 <!DOCTYPE html> <html><head><!-- <meta charset"GBK"> --><meta charset"UTF-8"><title></title></head><form><body><table id"myTable"> <tbody …

代码随想录算法训练营Day37 | LeetCode738.单调递增的数字、LeetCode968.监控二叉树、贪心算法总结

LeetCode738.单调递增的数字 思路&#xff1a;与分糖果的题目同理&#xff0c;因为需要与前一位数比较&#xff0c;并且修改这两个数&#xff0c;因此需要从后往前遍历&#xff0c;当前一位数比当前数大时&#xff0c;则前一个数-1&#xff0c;后一个数变为9。 代码细节&…

【C++从0到王者】第四十七站:最小生成树

文章目录 一、最小生成树的概念1.概念2.最小生成树的构造方法 二、Kruskal算法1.算法思想2.代码实现 三、Prim算法1.算法思想2.代码实现3.试试所有节点为起始点 一、最小生成树的概念 1.概念 连通图&#xff1a;在无向图中&#xff0c;若从顶点v1到顶点v2有路径&#xff0c;则…

设计模式:工厂模式 ⑤

一、思想 工厂模式&#xff1a;一个中介作用&#xff0c;在创建对象的时候。 主要作用&#xff1a;屏蔽对象创建过程&#xff0c;减少上层关注度&#xff0c;解耦并且内部方法可做更多扩展增强的处理。(比如使用映射消除if代码&#xff0c;存在多个同类对象需要抽象策略处理的时…

蓝桥杯练习系统(算法训练)ALGO-988 逗志芃的危机

资源限制 内存限制&#xff1a;256.0MB C/C时间限制&#xff1a;1.0s Java时间限制&#xff1a;3.0s Python时间限制&#xff1a;5.0s 问题描述 逗志芃又一次面临了危机。逗志芃的妹子是个聪明绝顶的人&#xff0c;相比之下逗志芃就很菜了。现在她妹子要和他玩一个游戏…

express+mysql+vue,从零搭建一个商城管理系统8--文件上传,大文件分片上传

提示&#xff1a;学习express&#xff0c;搭建管理系统 文章目录 前言一、安装multer&#xff0c;fs-extra二、新建config/upload.js三、新建routes/upload.js四、修改routes下的index.js五、修改index.js六、新建上传文件test.html七、开启jwt验证token&#xff0c;通过login接…

java核心面试题汇总

文章目录 1. Java1.1. TCP三次握手/四次挥手1.2 HashMap底层原理1.3 Java常见IO模型1.4 线程与线程池工作原理1.5 讲一讲ThreadLocal、Synchronized、volatile底层原理1.6 了解AQS底层原理吗 2. MySQL2.1 MySQL索引为何不采用红黑树&#xff0c;而选择B树2.2 MySQL索引为何不采…

JVM(类加载机制)

类加载就是 .class 文件, 从文件(硬盘) 被加载到内存(元数据区)中的过程 类加载的过程 加载: 找 .class 文件的过程, 打开文件, 读文件, 把文件读到内存中 验证: 检查 .class 文件的格式是否正确 .class 是一个二进制文件, 其格式有严格的说明 准备: 给类对象分配内存空间 (先在…

【C++干货基地】面向对象核心概念 | 访问限定符 | 类域 | 实例化 | 类对象模型

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引入 哈喽各位铁汁们好啊&#xff0c;我是博主鸽芷咕《C干货基地》是由我的襄阳家乡零食基地有感而发&#xff0c;不知道各位的…

一分钟了解深度学习算法

自从20世纪40年代起人工智能&#xff08;AI&#xff09;问世以来&#xff0c;学者们不懈探索着如何使机器具备模拟人类学习能力的能力。随着计算性能的不断提升和算法的演进&#xff0c;深度学习算法已成为AI领域的核心技术。本文将简述深度学习算法的概念、构成要素、应用范围…

【亲测】注册Claude3教程,解决Claude3被封号无法发送手机验证码

【亲测】注册Claude3教程&#xff1a;解决无法发送手机验证码的问题 Anthropic 今日宣布推出其最新大型语言模型&#xff08;LLM&#xff09;系列——Claude 3&#xff0c;这一系列模型在各种认知任务上树立了新的性能标准。Claude 3 系列包括三个子模型&#xff1a;Claude 3 …

金三银四,程序员如何备战面试季

金三银四&#xff0c;程序员如何备战面试季 一个人简介二前言三面试技巧分享3.1 自我介绍 四技术问题回答4.1 团队协作经验展示 五职业规划建议5.1 短期目标5.2 中长期目标 六后记 一个人简介 &#x1f3d8;️&#x1f3d8;️个人主页&#xff1a;以山河作礼。 &#x1f396;️…

【单调栈】Leetcode 739.每日温度

【单调栈】Leetcode 739.每日温度 解法&#xff1a;维护单调栈栈中存的是数组的索引 解法&#xff1a;维护单调栈栈中存的是数组的索引 栈中存的是数组的索引 当新的值比当前栈顶的大&#xff0c;那么就执行出栈-更新result数组-判断当新的值比当前栈顶的大&#xff1f;的循环…

白银期货开户交割规则有哪些?

白银期货交割是指期货合约到期时&#xff0c;交易双方通过该期货合约所载商品所有权的转移&#xff0c;了结到期未平仓合约的过程。小编在此为大家详细介绍白银期货的交割规则有哪些。白银期货的交割规则有哪些&#xff1f;白银期货的交割规则主要有&#xff1a; 一、交割商品…

(3)(3.2) MAVLink2数据包签名(安全)

文章目录 前言 1 配置 2 使用 3 MAVLink协议说明 前言 ArduPilot 和任务计划器能够通过使用加密密钥添加数据包签名&#xff0c;为空中 MAVLink 传输增加安全性。这并不加密数据&#xff0c;只是控制自动驾驶仪是否响应 MAVLink 命令。 当自动驾驶仪处于激活状态时&#x…

【Python】进阶学习:pandas--info()用法详解

【Python】进阶学习&#xff1a;pandas–info()用法详解 &#x1f308; 个人主页&#xff1a;高斯小哥 &#x1f525; 高质量专栏&#xff1a;Matplotlib之旅&#xff1a;零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程&#x1f448; 希望得到您的订…

新零售SaaS架构:订单履约系统的概念模型设计

订单履约系统的概念模型 订单&#xff1a;客户提交购物请求后&#xff0c;生成的买卖合同&#xff0c;通常包含客户信息、下单日期、所购买的商品或服务明细、价格、数量、收货地址以及支付方式等详细信息。 子订单&#xff1a;为了更高效地进行履约&#xff0c;大订单可能会被…

科技创新赋能森歌制造-浅谈森歌高品质发展之路

随着时代的变迁&#xff0c;科技创新已成为推动制造业高质量发展的关键力量。森歌&#xff0c;作为厨电行业的佼佼者&#xff0c;始终坚守着对优质品质的承诺&#xff0c;并在品牌的科技化升级之路上不断迈进。 在制造业科技化的背景下&#xff0c;新型工业化、数字经济、制造…

TQTT X310 软件无线电设备的FLASH固件更新方法

TQTT X310 除了PCIE口全部兼容USRP 官方的X310&#xff0c;并配备两块UBX160射频子板以及GPSDO。TQTT X310可以直接使用官方的固件&#xff0c;但是不支持官方的固件升级命令。这篇BLOG提供烧写刷新FLASH的方法。 1&#xff0c;使用的是WINDOWS系统。首先给X310接入电源并开机…