zoukankan      html  css  js  c++  java
  • LeetCode205. 同构字符串

    一、题目描述

    二、解法

    class Solution {
        public boolean isIsomorphic(String s, String t) {
            if (s.length() != t.length()) return false;
            /**
             *  方法1:使用HashMap,与LeetCode290题类似
             */
            /*
            Map<Character,Character> map = new HashMap<>();
            for (int i = 0; i < s.length(); i++) {
                char key = s.charAt(i);
                char c = t.charAt(i);
                if (!map.containsKey(key)) {
                    if (map.containsValue(c)) {
                        return false;
                    }
                    map.put(key,c);
                }else {
                    if (!map.get(key).equals(c)) {
                        return false;
                    }
                }
            }
            return true;
            */
            /**
             * 方法2:使用数组模拟哈希表
             *     思路:分别记录两个字符串每个字母上一次的映射,初始时都映射到 0
             */
            int[] mapS = new int[256];
            int[] mapT = new int[256];
            for (int i = 0; i < s.length(); i++) {
                if (mapS[s.charAt(i)] != mapT[t.charAt(i)]) {
                    return false;
                }
                mapS[s.charAt(i)] = i + 1;  // 方便记录映射的顺序
                mapT[t.charAt(i)] = i + 1;
            }
            return true;
        }
    }
  • 相关阅读:
    此生对我影响最大的三位老师
    介绍自己
    介绍自己
    第三周作业
    第二周作业
    PTA编程总结3
    PTA编程总结2
    PTA编程总结1
    2019年春季学期第七周作业.
    2019年春季学期第六周作业.
  • 原文地址:https://www.cnblogs.com/HuangYJ/p/14117525.html
Copyright © 2011-2022 走看看