码迷,mamicode.com
首页 > 其他好文 > 详细

有效的字母异位词

时间:2020-11-25 13:02:58      阅读:17      评论:0      收藏:0      [点我收藏+]

标签:i++   toc   字符   遍历   位置   solution   初始化   bool   数组   


给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。例如:输入 s = "anagram",t = "nagaram",s 和 t 是字母异位词,而 s = "rat",t = "car",此时 s 和 t 不是字母异位词。你可以假设字符串中只有小写字母


解题思路

使用哈希映射,首先判断两个字符串长度是否相等,不相等则直接返回 false,若相等,则用一个数组初始化 26 个字母哈希表,遍历字符串 s 和 t,s 负责在对应位置增加,t 负责在对应位置减少,如果哈希表的值都为 0,则二者是字母异位词

class Solution {
    public boolean isAnagram(String s, String t) {
        if(s.length() != t.length()) {
            return false;
        }
        int[] array = new int[26];
        for(int i = 0; i < s.length(); i++) {
            array[s.charAt(i) - ‘a‘]++;
            array[t.charAt(i) - ‘a‘]--;
        }
        for(int i = 0; i < array.length; i++) {
            if(array[i] != 0) {
                return false;
            }
        }
        return true;
    }
}

也可以借助排序,看排序后的字符串是否相等即可判断

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);
    }
}

有效的字母异位词

标签:i++   toc   字符   遍历   位置   solution   初始化   bool   数组   

原文地址:https://www.cnblogs.com/Yee-Q/p/14018471.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!