5.15
感觉自己用HashMap用的越来越溜了啊, 除了HashMap好像也就不会用别的了呢、
首先遍历s,将字符串映射出整数存在数组中。
再遍历T,比较两个整数数组是不是值相同。
public class Solution {
/**
* @param s a string
* @param t a string
* @return true if the characters in s can be replaced to get t or false
*/
public boolean isIsomorphic(String s, String t) {
// Write your code here
int a = s.length();
int b = t.length();
if(a != b){
return false;
}
int[] flag = new int[a];
int[] flag2 = new int[b];
int tmp = 0;
HashMap<Character,Integer> map = new HashMap<Character,Integer>();
HashMap<Character,Integer> map2 = new HashMap<Character,Integer>();
for(int i = 0; i < a; i++){
if(!map.containsKey(s.charAt(i))){
map.put(s.charAt(i),tmp);
tmp++;
flag[i] = tmp;
}
else{
flag[i] = map.get(s.charAt(i));
}
// System.out.println("s:" +s.charAt(i) + "," + map.get(s.charAt(i)));
}
tmp = 0;
for(int i = 0; i<b;i++){
if(!map2.containsKey(t.charAt(i))){
map2.put(t.charAt(i),tmp);
tmp ++;
flag2[i] = tmp;
}
else{
flag2[i] = map2.get(t.charAt(i));
}
//System.out.println("t:" + t.charAt(i) + "," + map2.get(t.charAt(i)));
if(flag[i] != flag2[i]){
return false;
}
}
return true;
}
}