给定两个字符串 s
和 t
,编写一个函数来判断 t
是否是 s
的字母异位词。
注意:若 s
和 t
中每个字符出现的次数都相同,则称 s
和 t
互为字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram" 输出: true 示例 2: 输入: s = "rat", t = "car" 输出: false
思路:排序
1.所谓字母异位词就是两个字符串中字母出现的次数以及长度都是一样的
2.有一个前提条件,如果两个字符串的长度不相等,那么一定不是字母异位词
3.如果字符串长度相等,首先先将字符串转变为 字符数组
4.运用排序的方法对字符数组中的字符进行排序
5.如果字符都相等,那么就是字母异位词
tt 是 ss 的异位词等价于「两个字符串排序后相等」。因此我们可以对字符串 ss 和 tt 分别排序,看排序后的字符串是否相等即可判断。此外,如果 ss 和 tt 的长度不同,tt 必然不是 ss 的异位词。
public class isAnagram {
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);
}
}