-
Notifications
You must be signed in to change notification settings - Fork 0
/
leetcode_242.java
64 lines (54 loc) · 1.5 KB
/
leetcode_242.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package leetcode;
/*
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
示例 1: 输入: s = "anagram", t = "nagaram" 输出: true
示例 2: 输入: s = "rat", t = "car" 输出: false
说明: 你可以假设字符串只包含小写字母。
*/
public class leetcode_242 {
public static void main(String[] args){
}
}
/*
思路:使用hash算法
*/
class lee_242{
public boolean isAnagram(String s, String t) {
int[] code = new int[26];
for(int i = 0;i<26;i++)
code[i]=0;
for(int i =0;i<s.length();i++){
char ch = s.charAt(i);
int ascii = (int) ch-97;
code[ascii] +=1;
}
for(int i =0;i<t.length();i++){
char ch = t.charAt(i);
int ascii = (int) ch-97;
code[ascii] -=1;
}
for (int i = 0;i<26;i++){
if(code[i]!=0)
return false;
}
return true;
}
/*
将代码进行改进,代码有许多可以改进的地方
*/
public boolean isAnagram_2(String s, String t) {
int[] record = new int[26];
for (char c : s.toCharArray()) {
record[c - 'a'] += 1;
}
for (char c : t.toCharArray()) {
record[c - 'a'] -= 1;
}
for (int i : record) {
if (i != 0) {
return false;
}
}
return true;
}
}