美文网首页
[字符串]-242. 有效的字母异位词

[字符串]-242. 有效的字母异位词

作者: 追云的帆 | 来源:发表于2018-08-13 16:18 被阅读130次

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

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

    示例 2:

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

    说明:
    你可以假设字符串只包含小写字母。
    进阶:
    如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?


    解析:

    字母异位词,就是两个字符串所含的字符个数相同位置不同。先判断两个字符串长度是否相同,不同直接返回false,使用哈希表的映射,利用一个数组代替(类似 387.字符串中的第一个唯一字符)。把字符串中出现的字符出现的个数统计存入一个大小为26的数组中。因为题目中假设字符串只包含小写字母。然后统计t字符串,如果不匹配则返回false,匹配返回true。

    Java代码

    class Solution {
        public boolean isAnagram(String s, String t) {
            if(s.length()!=t.length()) return false;//先判断两个字符串长度是否相同
            char[] ss = s.toCharArray();
            char[] tt = t.toCharArray();
            
            int temp[]=new int[26];//使用哈希表的映射 利用一个数组代替。
            //把字符串中出现的字符出现的个数统计存入一个大小为26的数组中
            for (int i = 0; i < ss.length; i++) {
                ++temp[ss[i]-'a'];
            }
            //第二个字符串进行匹配比较
            for (int i = 0; i < tt.length; i++) {
                if(--temp[tt[i]-'a']<0)
                    return false;
            }
            return true;
        }
    }
    

    相关文章

      网友评论

          本文标题:[字符串]-242. 有效的字母异位词

          本文链接:https://www.haomeiwen.com/subject/rejubftx.html