本文主要是介绍[字符串]205. 同构字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定两个字符串 s 和 t,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
示例 1:
输入:s = "egg", t = "add"输出:true
示例 2:
输入:s = "foo", t = "bar"输出:false
方法:
HashMap
不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上
代码:
// 205. 同构字符串
static void test_205() {String s = "egg";//String t = "add";String t = "ads";// 不同字符不能映射到同一个字符上//String s = "badc";//String t = "baba";boolean ret = isIsomorphic(s, t);System.out.println("ret:" + ret);
}
static boolean isIsomorphic(String s, String t) {HashMap<Character, Character> map = new HashMap<>();for (int i = 0; i < s.length(); i++) {if (!map.containsKey(s.charAt(i))) {// 不同字符不能映射到同一个字符上for (Character c : map.values()) {if (c.equals(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;
}
这篇关于[字符串]205. 同构字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!