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

一、问题描述

二、解题思路

解法一:

对s1和s2进行sort排序,返回s1是否等于s2;

解法二:

用哈希表分别来记录s1和s2中字符出现的次数,统计完后,判断两个哈希表是否相等;

三、代码实现

解法一:

时间复杂度:T(n)=O(nlogn)

空间复杂度:S(n)=O(1)

cpp 复制代码
class Solution {
public:
    bool CheckPermutation(string s1, string s2) {
        sort(s1.begin(),s1.end());
        sort(s2.begin(),s2.end());
        return s1==s2;
    }
};

解法二:

时间复杂度:T(n)=O(n)

空间复杂度:S(n)=O(n)

cpp 复制代码
class Solution {
public:
    bool CheckPermutation(string s1, string s2) {
        unordered_map<char,int> hash1,hash2;
        for(auto x:s1) hash1[x]++;
        for(auto x:s2) hash2[x]++;
        return hash1==hash2;
    }
};
相关推荐
啦啦啦!几秒前
c++AI大模型接入SDK项目
开发语言·数据结构·c++·人工智能·算法
lcj25113 分钟前
【C语言】自定义类型1:结构体
c语言·开发语言·算法
jaysee-sjc6 分钟前
十七、Java 高级技术入门全解:JUnit、反射、注解、动态代理
java·开发语言·算法·junit·intellij-idea
yongui478348 分钟前
MATLAB模糊控制的粒子群算法(Fuzzy-PSO)实现
数据结构·算法·matlab
sali-tec9 分钟前
C# 基于OpenCv的视觉工作流-章49-人脸检测
图像处理·人工智能·opencv·算法·计算机视觉
不爱吃炸鸡柳10 分钟前
4道经典算法题代码详解:从两数之和到链表两两交换
算法·链表·哈希算法
cmpxr_15 分钟前
【C】隐式类型转换
c语言·c++·算法
W230357657316 分钟前
【C++ 高性能日志系统实战】第三篇:异步日志系统的实现与优化
网络·数据结构·算法·日志
y = xⁿ23 分钟前
【LeetCode】哈希表
算法·leetcode·散列表