美文网首页
LeedCode 有效的字母异位词

LeedCode 有效的字母异位词

作者: 红枣枸杞OP | 来源:发表于2018-07-11 15:24 被阅读0次

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

    示例 1:

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

    示例 2:

    输入: s = "rat", t = "car"
    输出: false
    说明:
    你可以假设字符串只包含小写字母。

    进阶:

    如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?


    思路:
    将字符串转换成数组后,再对数组进行排序,这时比较两个排序后的数组即可。
    可用Java封装好的Array.sort()方法,也可用HashMap来计数,。
    代码

    class Solution {
        public boolean isAnagram(String s, String t) {
            char[] ms;
            char[] mt;
            ms = s.toCharArray();
            mt = t.toCharArray();
            Map<Character,Integer> map_s = new HashMap<Character,Integer>();
            Map<Character,Integer> map_t = new HashMap<Character,Integer>();
            for(char i:ms)
            {
                Character key = i;
                Integer value = map_s.get(key);
                if (value==null) {
                    map_s.put(key, 1);
                }else{
                    map_s.put(key, value+1);
                } 
            }
             for(char j:mt)
            {
                Character key = j;
                Integer value = map_t.get(key);
                if (value==null) {
                    map_t.put(key, 1);
                }else{
                    map_t.put(key, value+1);
                } 
            }
      
            if(map_t.equals(map_s))
            {
                return true;
            }
            return false;
            
        }
    }
    

    相关文章

      网友评论

          本文标题:LeedCode 有效的字母异位词

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