有效的字母异位词
力扣题号242
题目描述:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
 
 示例 1:
 输入: s = "anagram", t = "nagaram"
 输出: true
 示例 2:
 输入: s = "rat", t = "car"
 输出: false
 
 | 
奇淫巧技
 JAVA专用 
              
              | 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 
 | class Solution {public boolean isAnagram(String s, String t) {
 if (s.length() != t.length()){
 return false;
 }
 char[] sGroup = s.toCharArray();
 char[] tGroup = t.toCharArray();
 Arrays.sort(sGroup);
 Arrays.sort(tGroup);
 return Arrays.equals(sGroup, tGroup);
 
 }
 }
 
 | 
 
            哈希法
正规解法 哈希法,因为单词只有26个小写字符 所以我们可以考虑利用字母的ASCII码,当坐标,一个字符串对应的+ 一个字符串对应的-,判断这个字符计算的ASCII码所以对应的值是否小于0判断知否对应来解。
 哈希法 
              
              | 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | class Solution {public boolean isAnagram(String s, String t) {
 if (s.length() != t.length()){
 return false;
 }
 int [] index = new int[26];
 for (int i = 0; i < t.length(); i++) {
 index[t.charAt(i) - 'a']++;
 }
 for (int i = 0; i < s.length(); i++) {
 index[s.charAt(i) - 'a']--;
 if (index[s.charAt(i) - 'a'] < 0){
 return false;
 }
 }
 return true;
 }
 }
 
 |