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;
    }
};
相关推荐
freexyn19 小时前
Matlab自学笔记七十六:表达式的展开、因式分解、化简、合并同类项
笔记·算法·matlab
样例过了就是过了19 小时前
LeetCode热题 不同路径
c++·算法·leetcode·动态规划
迦南的迦 亚索的索19 小时前
AI_11_Coze_AI面试助手
人工智能·面试·职场和发展
dog25019 小时前
圆锥曲线和二次曲线
开发语言·网络·人工智能·算法·php
童园管理札记19 小时前
数字时代:学前教育的新改革
经验分享·职场和发展·学习方法·微信公众平台
Wadli19 小时前
27.单调队列
算法
Navigator_Z19 小时前
LeetCode //C - 1031. Maximum Sum of Two Non-Overlapping Subarrays
c语言·算法·leetcode
Wect20 小时前
LeetCode 97. 交错字符串:动态规划详解
前端·算法·typescript
爱学习的张大20 小时前
具身智能论文问答(三):Open VLA
人工智能·算法