242. 有效的字母异位词

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 示例 1: 输入: s = “anagram”, t = “nagaram” 输出: true 示例 2: 输入: s = “rat”, t = “car” 输出: false 说明: 你可以假设字符串只包含小写字母。 进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

代码实现

  1. #define N 26
  2. bool isAnagram(char * s, char * t){
  3. if(s == NULL || t == NULL)
  4. return false;
  5. int hash[N]={0};
  6. char* ps = s;
  7. while(*ps != '\0'){
  8. hash[*ps - 'a']++;
  9. ps++;
  10. }
  11. char* pt = t;
  12. while(*pt != '\0'){
  13. hash[*pt - 'a']--;
  14. pt++;
  15. }
  16. for(int i=0;i<N;i++){
  17. if(hash[i] != 0){
  18. return false;
  19. }
  20. }
  21. return true;
  22. }