给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 输入: s = "egg", t = "add" 输出: true 示例 2: 输入: s = "foo", t = "bar" 输出: false 示例 3: 输入: s = "paper", t = "title" 输出: true 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/isomorphic-strings 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
public boolean isIsomorphic(String s, String t) {
}
思路:不考虑效率的话 字符串s t 分别切割后存入hashmap 的kv 如果kv不匹配则返回false
遇到几个坑:"ab" "aa" 是false
"ab" "ca" 是True
"a" "a" 是True
public boolean isIsomorphic(String s, String t) { int si=s.length(); String cs[] = s.split(""); String ct[] = t.split(""); Map map = new HashMap(); for(int i=0;i<si;i++){ if(map.containsKey(cs[i])&&!ct[i].equals(map.get(cs[i]))){ return false; } if(map.containsValue(ct[i])&&!ct[i].equals(map.get(cs[i]))){ return false; } // if(map.containsKey(ct[i])&&!map.get(ct[i]).equals(cs[i])){ // return false; // } map.put(cs[i],ct[i]); } return true; }