题目考察的知识点

考察哈希表的应用

题目解答方法的文字分析

使用一个哈希表来存储对应的k-v关系,如果说已有这个映射的存在而此时值对应不上就说明无法成对应结构。对应关系存在的就去看映射关系是否正确。具体细节参看代码

本题解析所用的编程语言

使用Java解答

完整且正确的编程代码

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";
        if (s.length() == 0 )return "YES";

        HashMap<Character, Character> map = new HashMap<Character, Character>();
        for (int i = 0; i < s.length(); i++) { //遍历
            //map中有映射关系
            if (map.containsKey(s.charAt(i))) {
                if (t.charAt(i) != map.get(s.charAt(i)))return "NO"; //判断是否对应上
            } else if (map.containsValue(t.charAt(i))) {
                return "NO";
            } else {
                map.put(s.charAt(i), t.charAt(i));
            }
        }
        return "YES";
    }
}