leetcode日常刷题之有效的字母异位词No.243

leetcode日常刷题之有效的字母异位词No.243

今天在公司继续刷题 开始刷到哈希表部分 第一题便是这个有效字母的异位词

题目:

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

示例 1:

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

示例 2:

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

 

提示:

  • 1 <= s.length, t.length <= 5 * 104

  • st 仅包含小写字母

这道题属于比较简单的一题 最简单的办法就是利用数组 因为数组就是一个简单的哈希表

如下:
class Solution {
public static boolean isAnagram(String s, String t) {
         int[] table=new int[26];
         int[] table2=new int[26];
//创建两个数组 用于统计字符串出现次数
         for (int i=0;i<s.length();i++){
             table[s.charAt(i)-'a']++;
         }
//扫描字母 让表中的字母所在下标+1 ,-'a'是获得相对位置即可 不需要知道ascll码(连续)
         for (int i=0;i<t.length();i++){
             table2[t.charAt(i)-'a']++;
         }
         for (int i=0;i<26;i++){
             if (table[i]!=table2[i]){
                 return false;
//对照 如果有一个部分不相等 说明不是有效异位词
             }
         }
         return true;
    }
}

 

LICENSED UNDER CC BY-NC-SA 4.0