【哈希】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;
    }
};
相关推荐
不当菜鸡的程序媛24 分钟前
Flow Matching|什么是“预测速度场 vt=ε−x”?
人工智能·算法·机器学习
sali-tec1 小时前
C# 基于halcon的视觉工作流-章58-输出点云图
开发语言·人工智能·算法·计算机视觉·c#
_OP_CHEN1 小时前
算法基础篇:(四)基础算法之前缀和
c++·算法·前缀和·蓝桥杯·acm·icpc·算法竞赛
_OP_CHEN1 小时前
算法基础篇:(五)基础算法之差分——以“空间”换“时间”
c++·算法·acm·icpc·算法竞赛·差分算法·差分与前缀和
DuHz1 小时前
霍夫变换和基于时频脊线的汽车FMCW雷达干扰抑制——论文阅读
论文阅读·物联网·算法·汽车·信息与通信·毫米波雷达
秋风&萧瑟1 小时前
【C++】智能指针介绍
java·c++·算法
QiZhang | UESTC1 小时前
JAVA算法练习题day67
java·python·学习·算法·leetcode
陌路201 小时前
S15 排序算法--归并排序
数据结构·算法·排序算法
智者知已应修善业2 小时前
【c# 想一句话把 List<List<string>>的元素合并成List<string>】2023-2-9
经验分享·笔记·算法·c#·list
B站_计算机毕业设计之家2 小时前
深度学习:python人脸表情识别系统 情绪识别系统 深度学习 神经网络CNN算法 ✅
python·深度学习·神经网络·算法·yolo·机器学习·cnn