zoukankan      html  css  js  c++  java
  • 205. Isomorphic Strings

    Given two strings s and t, determine if they are isomorphic.

    Two strings are isomorphic if the characters in s can be replaced to get t.

    All occurrences of a character must be replaced with another character while preserving the order of characters. No two characters may map to the same character but a character may map to itself.

    Example 1:

    Input: s = "egg", t = "add"
    Output: true
    

    Example 2:

    Input: s = "foo", t = "bar"
    Output: false

    Example 3:

    Input: s = "paper", t = "title"
    Output: true

    Note:
    You may assume both and have the same length.

    //Time: O(n), Space: O(n)   
     public boolean isIsomorphic(String s, String t) {
            if (s == null && t == null) {
                return true;
            }
            
            if (s == null || t == null) {
                return false;
            }
            
            if (s.length() != t.length()) {
                return false;
            }
            
            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;//反例就是ab和aa,否则无法判断第一位有无出现过
                mapT[t.charAt(i)] = i + 1;
            }
            
            return true;
        }
  • 相关阅读:
    js以字符串方式创建DOM(原生js,jquery,extjs)
    gallery3
    检测标准类型和内置对象类型
    js数据类型和类型检测
    gallery2
    gallery
    如何使用Git上传项目代码到github
    sublime EMMET
    模糊搜索
    导出表格
  • 原文地址:https://www.cnblogs.com/jessie2009/p/9810062.html
Copyright © 2011-2022 走看看