【哈希】Leetcode 面试题 01.02. 判定是否互为字符重排

题目讲解

面试题 01.02. 判定是否互为字符重排


算法讲解

直观的想法:我们找到一个字符串的全排列,然后对比当前的排列是否等于另一个字符串。如果两个字符串如果互为排列,所以我们知道两个字符串对应的字符出现的个数相同,那么就可以排列成另一个字符串

细节:如果两个字符串的长度都不相同,那么肯定不能排列成功,直接返回false

cpp 复制代码
class Solution {
public:
    bool CheckPermutation(string s1, string s2) {
        if(s1.size() != s2.size())return false;
        int Hash[26] = {0};
        for(int i = 0; i < s1.size(); i++)
        {
            Hash[s1[i] - 'a']++;
        }
        for(int i = 0; i < s2.size(); i++)
        {
            Hash[s2[i] - 'a']--;
        }
        //判断是否存在负数
        for(int i = 0; i < 26; i++)
        {
            if(Hash[i] != 0)return false;
        }
        return true;
    }
};
相关推荐
s_w.h5 小时前
【 刷题 】双指针
算法
啥都想学点的研究生5 小时前
一篇文章讲清楚:K-Means聚类算法
算法·kmeans·聚类
白狐_7985 小时前
408 数据结构|KMP做题方法:next、nextval和高频易错点
数据结构·算法
月华路5 小时前
《模型不玄学》第20章 两种评估视角
人工智能·算法·机器学习
禹凕6 小时前
快速幂算法详解与实战
python·算法
xxwl5856 小时前
高斯消元法异或版
人工智能·算法·机器学习
sylviiiiiia6 小时前
leetcode hot 100
python·算法·leetcode
OPEN-F6 小时前
ROS2系列教程:Gazebo插件(关节控制/IMU/激光雷达)
c++·python·数码相机·算法·机器人
luj_17686 小时前
虚实交融中的真实人物塑造
c语言·开发语言·网络·经验分享·算法
haolin123.7 小时前
STL vector底层揭秘:从构造到迭代器失效
开发语言·c++·算法