题解 | #农场智能分类系统#
农场智能分类系统
https://www.nowcoder.com/practice/a2c9a3fce4f141a3956fe67cd00cc3e2
import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @param t string字符串 * @return string字符串 */ public String isIsomorphic (String s, String t) { // write code here if(s.length()!=t.length()){ return "NO"; } Map<Character,Character> map = new HashMap<>(); for(int i=0;i<s.length();i++){ if(s.charAt(i)!=t.charAt(i)){ if(map.containsKey(s.charAt(i))){ if(map.get(s.charAt(i))!=t.charAt(i)){ return "NO"; } }else if(map.getOrDefault(t.charAt(i),t.charAt(i))==s.charAt(i)){ return "NO"; }else{ map.put(s.charAt(i),t.charAt(i)); } } } return "YES"; } }
本题考察的知识点是字符串,所用编程语言是java.
所谓同构就是两个字符相等忽略,两个字符不相等映射,假设两个字符不相等时,观察哈希表是否存在两者的映射或者逆映射
如果存在两者的逆映射,则两个字符串不是同构的
如果不存在两者的逆映射或者映射关系,则将两者的映射关系存在哈希表中
如果存在两者的映射关系,则比较下一字符
重复上述操作,直到比较完成。