题解 | #农场智能分类系统#

农场智能分类系统

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.

所谓同构就是两个字符相等忽略,两个字符不相等映射,假设两个字符不相等时,观察哈希表是否存在两者的映射或者逆映射

如果存在两者的逆映射,则两个字符串不是同构的

如果不存在两者的逆映射或者映射关系,则将两者的映射关系存在哈希表中

如果存在两者的映射关系,则比较下一字符

重复上述操作,直到比较完成。

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务