题目链接:https://leetcode.com/problems/isomorphic-strings/

题目:

s and t, determine if they are isomorphic.

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.

For example,

Given "egg""add", return true."foo""bar", return false."paper""title", return true.

Note:
You may assume both s and t

思路:

用HashMap存储字符之间映射关系,要注意是双向映射即a映射到b,b也要映射到a,用hashmap要判断两次。

算法


 
    
 
1. public boolean isIsomorphic(String s, String t) {  
2. char strs[] = s.toCharArray();  
3. char patterns[] = t.toCharArray();  
4. new HashMap<Character, Character>();  
5.   
6. for (int i = 0; i < strs.length; i++) {  
7. if (maps.containsKey(strs[i])) {  
8. if (!(maps.get(strs[i]).charValue() == patterns[i])) {  
9. return false;  
10.             }  
11. else {  
12.             maps.put(strs[i], patterns[i]);  
13.         }  
14.     }  
15.   
16.     maps.clear();  
17. for (int i = 0; i < patterns.length; i++) {  
18. if (maps.containsKey(patterns[i])) {  
19. if (!(maps.get(patterns[i]).charValue() == strs[i])) {  
20. return false;  
21.             }  
22. else {  
23.             maps.put(patterns[i], strs[i]);  
24.         }  
25.     }  
26. return true;  
27. }
1.