给定两个字符串 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; } };