zoukankan      html  css  js  c++  java
  • [LeetCode] 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.

    判断两个字符串是否同构。

    同构的条件是字符串s和t中对位的字母是否存在某种唯一的映射关系。

    所以利用两个map来构建映射关系,ms来构建s->t的映射关系。mt来构建t->s的映射关系。在同一对位字母下,ms与mt的键值正好相反。

    判断如果与已经存在的键值不匹配,则返回false即可

    class Solution {
    public:
        bool isIsomorphic(string s, string t) {
            unordered_map<char, char> ms;
            unordered_map<char, char> mt;
            for (int i = 0; i != s.size(); i++) {
                if (ms[s[i]] == 0 && mt[t[i]] == 0) {
                    ms[s[i]] = t[i];
                    mt[t[i]] = s[i];
                }
                else if (ms[s[i]] != t[i] || mt[t[i]] != s[i])
                    return false;
            }
            return true;
        }
    };
    // 9 ms
  • 相关阅读:
    解决asp.net mvc的跨域请求问题
    centos安装nodejs
    webapi中配置返回的时间数据格式
    centos安装django
    在Linux CentOS 6.6上安装Python 2.7.9
    nginx日志切割脚本
    apache单ip配置多端口多站点
    centos开启rewrite功能
    Fast Matrix Operations
    1400
  • 原文地址:https://www.cnblogs.com/immjc/p/7635137.html
Copyright © 2011-2022 走看看