怎么在凡科做自己网站拉新平台
题目描述
- 给定两个字符串
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 * 104
s
和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;}
}