205. 同构字符串 - 力扣(LeetCode) (leetcode-cn.com)
class Solution {
/**
* 遍历字符串s
* 1.如果map中不存在键s.charAt(i),
* 先判断map中是否存在值t.charAt(i),如果存在返回false.(不同字符不能映射到同一个字符上)
* 否者map存入以s.charAt(i)为键,t.charAt(i)的键值对
* 2.如果map中存在键s.charAt(i),
* 比较该键的值与字符串t.charAt(i),不相等返回false。(相同字符只能映射到同一个字符上)
* */
public boolean isIsomorphic(String s, String t) {
if(s.length()!=t.length()){
return false;
}
Map<Character, Character> map = new HashMap<>();
for(int i=0;i<s.length();i++){
if(!map.containsKey(s.charAt(i))){
if(map.containsValue(t.charAt(i))){
return false;
}
map.put(s.charAt(i),t.charAt(i));
}else{
if(map.get(s.charAt(i))!=t.charAt(i)){
return false;
}
}
}
return true;
}
}