Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

有效的字母异位词

力扣题号242

题目描述:

1
2
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专用
1
2
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判断知否对应来解。

哈希法
1
2
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;
}
}

评论