Leetcode刷题java之242. 有效的字母异位词(一天一道编程题之三十七天)

执行结果:

通过

显示详情

执行用时 :2 ms, 在所有 Java 提交中击败了99.94% 的用户

内存消耗 :39.5 MB, 在所有 Java 提交中击败了5.08%的用户

题目:

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

示例 1:

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


示例 2:

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

说明:
你可以假设字符串只包含小写字母。

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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-anagram
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

本来想着得用两个hash数组,然后比较对应位上是否相等,其实用一个hash表就可以了,一个加,一个减。

代码:

class Solution {
    public boolean isAnagram(String s, String t) {
        if(s.length()!=t.length())
        {
            return false;
        }
        int[] hash=new int[26];
        for(char c:s.toCharArray())
        {
            hash[c-'a']++;
        }
        for(char c:t.toCharArray())
        {
            hash[c-'a']--;
            if(hash[c-'a']<0)
            {
                return false;
            }
        }
        return true;
    }
}

 

你可能感兴趣的:(java面经之查缺补漏,Leecode,哈希)