java刷题--242有效的字母异位词

Posted Anrys

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java刷题--242有效的字母异位词相关的知识,希望对你有一定的参考价值。

java刷题--242有效的字母异位词

题目

在这里插入图片描述

代码

class Solution {
    public boolean isAnagram(String s, String t) {
        char[] schar = s.toCharArray();
        char[] tchar = t.toCharArray();
        Arrays.sort(schar);
        Arrays.sort(tchar);
        return Arrays.equals(schar,tchar);
  }
}

哈希

class Solution {
    public boolean isAnagram(String s, String t) {
        if (s.length() != t.length()) return false;
        Map<Character, Integer> table = new HashMap<Character, Integer>();
        for (int i = 0; i < s.length(); i++) {
            char ch = s.charAt(i);
            table.put(ch, table.getOrDefault(ch, 0) + 1);
        }
        for (int i = 0; i < t.length(); i++) {
            char ch = t.charAt(i);
            table.put(ch, table.getOrDefault(ch, 0) - 1);
            if (table.get(ch) < 0) {
                return false;
            }
        }
        return true;
    }
}
class Solution {
    public boolean isAnagram(String s, String t) {
        if(s.length()!=t.length()) return false;
        HashMap<Character,Integer> hash = new HashMap<Character,Integer>();
        for(char ch:s.toCharArray()){
            hash.put(ch,hash.getOrDefault(ch, 0)+1);
        }
        for(char ch:t.toCharArray()){
            hash.put(ch, hash.getOrDefault(ch, 0)-1);
            //前面加入后value一直是正数,小于零意味着有新的字母或者旧字母过多,由于长度一致旧字母过少肯定会导致新字母产生
            if(hash.get(ch)<0) return false; 
        }return true;
    }
}

结果

在这里插入图片描述

以上是关于java刷题--242有效的字母异位词的主要内容,如果未能解决你的问题,请参考以下文章

leetcode刷题46.有效的字母异位词——Java版

LeetCode 242. 有效的字母异位词

leetcode 242. 有效的字母异位词

leetcode 242. 有效的字母异位词

题目地址(242. 有效的字母异位词)

前端与算法 leetcode 242. 有效的字母异位词