有效的字母异位词

给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词。

示例 1:

输入: s = "anagram", t = "nagaram"
输出: true

示例 2:

输入: s = "rat", t = "car"
输出: false

解法1

//将两个字符串转为字符数组后,排序并进行比较
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);
    }
}

解法2

//用一个1*26的数组代表26个字母
//遍历s,对应的字母++
//再遍历t,对应字母--
//若出现小于0的结果,则代表出现了s中没有的字母
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;
    }
}
posted @ 2024-09-06 18:38  柴勇玛喜达  阅读(20)  评论(0)    收藏  举报