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

news2024/9/22 1:32:37

目录

🚩了解题意

🚩算法原理

第一种:排序

第二种方法:哈希

🚩实现代码






面试题 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) {
        //如果俩个字符串长度不相等就直接false
       if(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) {
        //如果俩个字符串长度不相等就直接false
       if(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,说明没有出现这个单词
       //直接false
       for(int i=0;i<s2.length();i++){
           hash[s2[i]]--;
           if(hash[s2[i]]<0){
               return false;
           }
       }
       return true;
    }

};

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

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

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

相关文章

FPGA时序约束与分析--建立时间与保持时间

文章目录 前言一、定义二、举例说明2.1 建立时间违规2.2 保持时间违规前言 时序约束的定义–设计者根据实际的系统功能,通过时序约束的方式提出时序要求; FPGA 编译工具根据设计者的时序要求,进行布局布线;编译完成后, FPGA 编译工具还需要针对布局布线的结果,套用特定的…

基于SSM的农业电商服务系统(农产品销售管理系统)(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的农业电商服务系统&#xff08;农产品销售管理系统&#xff09;&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#…

【Python】批量读取文件夹中的excel文件

示例展示 代码 import os import pandas as pd folder_path r"C:\Users\admin\Desktop\excelfile" extension"xlsx" files [file for file in os.listdir(folder_path) if file.endswith(. extension)] for file in files:filepath os.path.join(folde…

嵌入式基础知识-信号量,PV原语与前趋图

本篇来介绍信号量与PV原语的一些知识&#xff0c;并介绍其在前趋图上的应用分析。本篇的知识属于操作系统部分的通用知识&#xff0c;在嵌入式软件开发中&#xff0c;同样会用到这些知识。 1 信号量 信号量是最早出现的用来解决进程同步与互斥问题的机制&#xff08;可以把信…

Spring Boot2.2.4版本启动项目时,访问登录接口显示页面不存在

问题触发场景&#xff1a;IDEA 2023.3.4 SpringBoot 2.2.4 上面4张图片分别是项目结构、Spring Boot启动配置、SpringMVC配置和页面展示在项目中存放的位置&#xff0c;表面上看上去没有太大问题&#xff0c;项目应该会达到预期结果&#xff0c;但是bug总是在不经意间出现&…

华为路由器QOS限速实验

此配置只适合分配好VLAN的各项业务&#xff0c;例如&#xff1a;vlan10是视频业务&#xff0c;vlan20是语音业务等。 1.配置流分类 [ar1]traffic classifier c1 operator and [ar1-classifier-c1]if-match vlan-id 10 [ar1-classifier-c1]q [ar1]traffic classifier c2 oper…

nginx-图片模块

./configure --with-http_image_filter_module location / {root html;index index.html index.htm;if ($arg_w "") {set $arg_w -;}if ($arg_h "") {set $arg_h -;}image_filter resize $arg_w $arg_h;image_filter_jpeg_quality 95; } 访问: 1234…

进程间通信之消息队列及共享内存

1.IPC对象: 内存文件 1.ipcs 查看系统重的消息队列、共享内存、信号灯的信息 2.ipcrm 删除消息队列、共享内存、信号灯 ipcrm -Q/-M/-S key ipcrm -q/-m/-s 消息队列ID/共享内存ID/信号灯ID 消息队列&#xff1a; 3.操作流程: …

Three.js--》探寻Cannon.js构建震撼的3D物理交互体验(一)

我们用three.js可以绘制出各种酷炫的画面&#xff0c;但是当我们想要一个更加真实的物理效果的话&#xff0c;这个时候我们就需要一个物理的库&#xff0c;接下来我们就讲解一下今天要学习的canon&#xff0c;它可以给我们提供一个更加真实的物理效果&#xff0c;像物体的张力、…

如何把chatgpt-on-wechat 与RWKV-Runner结合打造本地微信chatgpt机器人

环境&#xff1a; Win10 11代i7 64G内存 500G硬盘 chatgpt-on-wechat RWKV-Runner 问题描述&#xff1a; 如何把chatgpt-on-wechat 与RWKV-Runner结合打造本地微信chatgpt机器人 解决方案&#xff1a; chatgpt-on-wechat项目 有4种运行程序的方式供你选择&#xff1a; …

国科大计算机网络实验 HTTP服务器

UCAS_CN_LAB HTTP服务器实验 实验要求 •实现&#xff1a;使用C语言实现最简单的HTTP服务器 •同时支持HTTP&#xff08;80端口&#xff09;和HTTPS&#xff08;443端口&#xff09; •使用两个线程分别监听各自端口 •只需支持GET方法&#xff0c;解析请求报文&#xff…

多点通信与域套接字:2024/3/4

作业1&#xff1a;广播 发送端&#xff1a; #include <myhead.h> int main(int argc, const char *argv[]) {//1.创建套接字int sfdsocket(AF_INET,SOCK_DGRAM,0);if(sfd-1){perror("socket error");return -1;}printf("sfd%d\n",sfd);//2.设置当前…

Android res/values/locale_config.xml文件

Android res/values/locale_config.xml文件 各个国家/地区在android系统里面的缩写代码。最典型的用途是本地化。 <?xml version"1.0" encoding"utf-8"?> <!-- Copyright (C) 2015 The Android Open Source ProjectLicensed under the Apache L…

大模型推荐落地啦!融合知识图谱,蚂蚁集团发布!

引言&#xff1a;电商推荐系统的新突破 随着电子商务平台的蓬勃发展&#xff0c;推荐系统已成为帮助用户在信息过载时代中筛选和发现产品的关键工具。然而&#xff0c;传统的推荐系统主要依赖历史数据和用户反馈&#xff0c;这限制了它们在新商品推出和用户意图转变时的有效性…

【洛谷 P8682】[蓝桥杯 2019 省 B] 等差数列 题解(数学+排序+辗转相除法)

[蓝桥杯 2019 省 B] 等差数列 题目描述 数学老师给小明出了一道等差数列求和的题目。但是粗心的小明忘记了一部分的数列&#xff0c;只记得其中 N N N 个整数。 现在给出这 N N N 个整数&#xff0c;小明想知道包含这 N N N 个整数的最短的等差数列有几项&#xff1f; 输…

ROS 2基础概念#3:主题(Topic)| ROS 2学习笔记

在ROS&#xff08;Robot Operating System&#xff09;中&#xff0c;主题&#xff08;Topics&#xff09;是实现节点之间通信的主要机制之一。节点&#xff08;Node&#xff09;可以发布&#xff08;publish&#xff09;消息到话题&#xff0c;或者订阅&#xff08;subscribe&…

搜索回溯算法(DFS)1------递归

目录 简介&#xff1a; 递归问题解题的思路模板 例题1&#xff1a;汉诺塔 例题2&#xff1a;合并两个有序链表 例题3&#xff1a;反转链表 例题4&#xff1a;两两交换链表中的节点 例题5&#xff1a;Pow&#xff08;x,n&#xff09;-快速幂 结语&#xff1a; 简介&…

攻防世界-get_post

题目信息 相关知识 -G&#xff1a;表示GET请求&#xff0c;缺省POST -d参数用于发送 POST 请求的数据体 使用-d参数以后&#xff0c;HTTP 请求会自动加上标头Content-Type : application/x-www-form-urlencoded。并且会自动将请求转为 POST 方法&#xff0c;因此可以省略-X PO…

Vue.js 深度解析:模板编译原理与过程

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

Springboot+vue的船舶监造系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的船舶监造系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的船舶监造系统&#xff0c;采用M&#xff08;model&#xff09;V&#xff…