forked from fishercoder1534/Leetcode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathIsomorphicStrings.java
27 lines (23 loc) · 975 Bytes
/
IsomorphicStrings.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
package easy;
import java.util.HashMap;
import java.util.Map;
public class IsomorphicStrings {
/**space should be O(1) since it only has alphabetic letters which are capped at 52.*/
public boolean isIsomorphic(String s, String t) {
if(s == null || s.length() == 0) return (t == null || t.length() == 0);
if(t == null || t.length() == 0) return (s == null || s.length() == 0);
char[] schar = s.toCharArray();
char[] tchar = t.toCharArray();
Map<Character, Character> map = new HashMap();
if(s.length() != t.length()) return false;
for(int i = 0; i < s.length(); i++){
if(map.containsKey(schar[i])){
if(map.get(schar[i]) != tchar[i]) return false;
} else {
if(map.containsValue(tchar[i])) return false;//this line is necessary for this case: ("ab", "aa")
map.put(schar[i], tchar[i]);
}
}
return true;
}
}