题目内容:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。
思路一:利用字符串排序,然后判断它们是否都是一样的。
c++:
class Solution {
public:
bool isAnagram(string s, string t)
{
sort(s.begin(),s.end());
sort(t.begin(),t.end());
return s==t;
}
};
java:
class Solution {
public boolean isAnagram(String s, String t)
{
if(s.length()!=t.length())
{
return false;
}
char[] str1 =s.toCharArray();
char[] str2 =t.toCharArray();
Arrays.sort(str1);
Arrays.sort(str2);
return Arrays.equals(str1,str2);
}
}
思路二:使用c++中的map
class Solution {
public:
bool isAnagram(string s, string t)
{
if(s.size()!=t.size())
return false;
unodered_map<char,int>map;
for(char c:s) map[c]++;
for(char c:t)
if(--map[c]==-1) return false;
return true;
}
};