【哈希】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;
    }
};
相关推荐
coder_Eight17 小时前
LRU 缓存实现详解:双向链表 + 哈希表
前端·算法
重生之我是Java开发战士17 小时前
【动态规划】路径问题:不同路径,珠宝的最高价值,下降路径最小和,最小路径和,地下城游戏
算法·游戏·动态规划
小辉同志17 小时前
739. 每日温度
c++·算法·leetcode
Via_Neo17 小时前
二进制枚举
数据结构·算法·leetcode
荣光属于凯撒17 小时前
P3040 [USACO12JAN] Bale Share S
算法·深度优先
kingcjh9717 小时前
十、RL 算法性能调优指南
深度学习·算法
muls117 小时前
java面试宝典
java·linux·服务器·网络·算法·操作系统
BieberChen18 小时前
匈牙利匹配算法 (Hungarian Algorithm) 详解
算法
春栀怡铃声18 小时前
常考排序的梳理
数据结构·算法·排序算法
第二只羽毛18 小时前
第六章 图
大数据·数据结构·算法·深度优先·图论·广度优先·宽度优先