一、問題描述
二、解題思路
解法一:
對s1和s2進行sort排序,返回s1是否等于s2;
解法二:
用哈希表分別來記錄s1和s2中字符出現的次數,統計完后,判斷兩個哈希表是否相等;
三、代碼實現
解法一:
時間復雜度:T(n)=O(nlogn)
空間復雜度:S(n)=O(1)
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)
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;}
};