1. 程式人生 > >Given two strings s and t, write a function to determine if t is an anagram of s.

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

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

For example,
s = "anagram", t = "nagaram", return true.
s = "rat", t = "car", return false.

Note:

You may assume the string contains only lowercase alphabets.

判斷兩個字串中是否使用相同的字元

class Solution {
public:
    bool isAnagram(string s, string t) {
        if (s.size() != t.size()) return false;
        int bit[26] = {0}, len = s.length();
    
        for(int i=0; i<len; i++)
            bit[s[i]-'a']++;
    
        for(int i=0; i<len; i++)
            if(--bit[t[i]-'a'] < 0)
                return false;
        return true;
    }
};

更簡單的:

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