题解 | #牛群的同构特征#
牛群的同构特征
https://www.nowcoder.com/practice/290ad8e24e6f41db80cc8d0cec6af720?tpId=363&tqId=10605510&ru=/exam/oj&qru=/ta/super-company23Year/question-ranking&sourceUrl=%2Fexam%2Foj
import java.util.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @param t string字符串
* @return bool布尔型
*/
public boolean isIsomorphic (String s, String t) {
// 长度不相等不可能映射成功
if (s.length() != t.length()) {
return false;
}
HashMap<Character, Character> sHashMap = new HashMap<>();
HashMap<Character, Character> tHashMap = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
char sChar = s.charAt(i);
char tChar = t.charAt(i);
if (sHashMap.containsKey(sChar)) {
if (sHashMap.get(sChar) != tChar) {
return false;
}
} else {
if (tHashMap.containsKey(tChar)) {
return false;
}
sHashMap.put(sChar, tChar);
tHashMap.put(tChar, sChar);
}
}
return true;
}
}
本题知识点分析:
1.哈希表的存取
2.数学模拟
3.字符串
本题解题思路分析:
1.创建两个哈希表分别存放两个字符串的字符
2.分别取出两个字符串的字符,如果此时sHashMap包含了s的字符,但是从sHashMap的get取出不是当前是tChar,说明被其他字符映射,返回false;
3.如果没有包含s字符,但是此时tHashMap有存在tChar,说明被其他字符映射,返回false, 如果没有,分别在两个哈希表放入两个字符。
本题使用编程语言: Java
如果你觉得本篇文章对你有帮助的话,可以点个赞支持一下,感谢~


查看6道真题和解析