242. Valid Anagram

Link

Given two strings s and t , write a function to determine if t is an anagram of s.

Example 1:

Input: s = "anagram", t = "nagaram"
Output: true

Example 2:

Input: s = "rat", t = "car"
Output: false

Note: You may assume the string contains only lowercase alphabets.

Follow up: What if the inputs contain unicode characters? How would you adapt your solution to such case?

Soltution

概念上也是去紀錄每個字母的是用狀態,直覺上會想到hashMap。

但其實若是input有限制是26個英文字母的話,用array就夠了

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

Last updated

Was this helpful?