怎样注册网络平台锦绣大地seo官网
题目描述
- 给定两个字符串
s和t,编写一个函数来判断t是否是s的字母异位词。 - 注意:若
s和t中每个字符出现的次数都相同,则称s和t互为字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram" 输出: true
示例 2:
输入: s = "rat", t = "car" 输出: false
提示:
1 <= s.length, t.length <= 5 * 104s和t仅包含小写字母
解题思路:
1.对两个字符串进行排序,看排序后字符串是否相等即可
2.哈希表,维护一个长度26的批次数组,先遍历字符串s出现频次,再遍历t,减去数组中对应的批次,如果出现数组[i]<0,则返回false即可
题解:
思路一:
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);}
}
思路二:
class Solution {public boolean isAnagram(String s, String t) {if(s.length()!=t.length()){return false;}int[] table=new int[26];for(int i=0;i<s.length();i++){table[s.charAt(i)- 'a']++;}for(int i=0;i<t.length();i++){table[t.charAt(i)-'a']--;if(table[t.charAt(i)-'a']<0){return false;}}return true;}
}
