题目内容:
给定两个字符串 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;}
};