题目描述:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
方法一:排序(C++代码)
分析:t 是 s 的异位词等价于「两个字符串排序后相等」。
class Solution {
public:
bool isAnagram(string s, string t) { //方法一:排序
if(s.length() != t.length()){
return false;
}
sort(s.begin(), s.end());
sort(t.begin(), t.end());
return s == t;
}
};
时间复杂度:O(nlogn),空间复杂度:O(logn),其中 n 为 s 的长度。