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.

    For example,
    Given "egg""add", return true.

    Given "foo""bar", return false.

    Given "paper""title", return true.

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

     [暴力解法]:

    时间分析:

    空间分析:

     [优化后]:

    时间分析:

    空间分析:

    [奇葩输出条件]:

    [奇葩corner case]:

    [思维问题]:

    [一句话思路]:

    “对应类问题”:一批标记一次,标记对不上的不行

    [输入量]:空: 正常情况:特大:特小:程序里处理到的特殊情况:异常情况(不合法不合理的输入):

    [画图]:

    [一刷]:

    [二刷]:

    [三刷]:

    [四刷]:

    [五刷]:

      [五分钟肉眼debug的结果]:

    [总结]:

    对应类也可以用256,一批标记一次, 标记都是用index i

    [复杂度]:Time complexity: O(n) Space complexity: O(n)

    [英文数据结构或算法,为什么不用别的数据结构或算法]:

    不知道怎么用哈希,但其实256就是哈希的一种。

    [关键模板化代码]:

    一批标记一次

    for (int i = 0; i < n; i++) {
                if (m1[s.charAt(i)] != m2[t.charAt(i)]) return false;
                m1[s.charAt(i)] = i + 1;
                m2[t.charAt(i)] = i + 1;
            }

    [其他解法]:

    [Follow Up]:

    [LC给出的题目变变变]:

    290. Word Pattern

     [代码风格] :

    class Solution {
        public boolean isIsomorphic(String s, String t) {
            //ini, int[256]
            int[] m1 = new int[256];
            int[] m2 = new int[256];
            int n = s.length();
            
            //judge
            for (int i = 0; i < n; i++) {
                if (m1[s.charAt(i)] != m2[t.charAt(i)]) return false;
                m1[s.charAt(i)] = i + 1;
                m2[t.charAt(i)] = i + 1;
            }
            
            //return false;
            return true;
        }
    }
    View Code
  • 相关阅读:
    python 读写excel,基于win32com实现
    nginx中lua语言获取传参字符串转json打印key,value
    nginx中lua语言打印匹配正则表达式的内容
    nginx 对于post,get参数访问做xss,sql注入过滤
    javaWeb第五天---MVC设计模式
    javaWeb第四天-----jspELJSTL
    javaWeb第三天---http协议和会话技术
    javaWeb第一天
    JDBC第二天---JDBC工具类
    jdbc第三天---配置文件、dao模式
  • 原文地址:https://www.cnblogs.com/immiao0319/p/8922928.html
Copyright © 2011-2022 走看看