引言:
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
说明:
你可以假设字符串只包含小写字母。
题目分析:
1.什么是字母异位词?
所谓字母异位词是指,两个字符串中含有相同类型且相同数目的字母,只是字母的排列顺序出现了异位。
比如,在题目中的"anagram"和"nagaram",两者都含有3个a,1个n,1个g,1个r,1个m。
2.说明剖析:字符串中只含有小写字母。
那么说明只可能出现26中字母。我们需要做的就是统计每一个字符串中出现的个数,这里我们选择使用一个长度为26的一个int数组。
3.判断两个字符串是否具有相同数量的字母,那么我们可以分别遍历两个字符串,统计每一个的字符串的数量,一个使用正,一个使用负。相同的话对应位置的数量应该为0.
具体的代码实现:
1 class Solution { 2 public boolean isAnagram(String s, String t) { 3 int[] standard=new int[26]; 4 for (int i = 0; i <s.length() ; i++) { 5 standard[s.charAt(i)-'a']++; 6 } 7 for (int i = 0; i <t.length(); i++) { 8 standard[t.charAt(i)-'a']--; 9 } 10 for (int num:standard) { 11 if(num!=0){ 12 return false; 13 } 14 } 15 return true; 16 } 17 }