-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathIsomorphicStrings.java
More file actions
52 lines (40 loc) · 1.42 KB
/
IsomorphicStrings.java
File metadata and controls
52 lines (40 loc) · 1.42 KB
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
/*
Given two strings 's' and 't', determine if they are isomorphic. Two strings 's' and 't' are isomorphic if the characters in 's' can be replaced to get 't.'
All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character, but a character may map to itself.
Example 1:
Input: s = "egg", t = "add"
Output: true
Explanation:
The strings s and t can be made identical by:
Mapping 'e' to 'a'.
Mapping 'g' to 'd'.
Example 2:
Input: s = "foo", t = "bar"
Output: false
Explanation:
The strings s and t can not be made identical as 'o' needs to be mapped to both 'a' and 'r'.
Example 3:
Input: s = "paper", t = "title"
Output: true
*/
class Solution {
public boolean isIsomorphic(String s, String t) {
char[] sToTMap = new char[256];
char[] tToSMap = new char[256];
for (int i = 0; i < s.length(); i++) {
char charS = s.charAt(i);
char charT = t.charAt(i);
if (sToTMap[charS] == 0) {
sToTMap[charS] = charT;
} else {
if (sToTMap[charS] != charT) return false;
}
if (tToSMap[charT] == 0) {
tToSMap[charT] = charS;
} else {
if (tToSMap[charT] != charS) return false;
}
}
return true;
}
}