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

    思路:记录映射关系,如果不能匹配就返回false

    class Solution {
    public:
        bool isIsomorphic(string s, string t) {
            unordered_map<char, char> mp1;
            unordered_map<char, char> mp2;
            for (int i = 0; i < s.size(); ++i) {
                if (mp1.count(s[i]) == 0 && mp2.count(t[i]) == 0) {
                    mp1[s[i]] = t[i];
                    mp2[t[i]] = s[i];
                } else if (mp1.count(s[i]) == 0) {
                    if (s[i] != mp2[t[i]]) return false;
                } else if (mp2.count(t[i]) == 0) {
                    if (t[i] != mp1[s[i]]) return false;
                }
                else {
                    if (mp2[t[i]] != s[i] || mp1[s[i]] != t[i]) return false;
                }
            }
            return true;
        }
    }; 
    //aacaa
    //bbacc
    
  • 相关阅读:
    luogu P5494 【模板】线段树分裂
    珂朵莉树(ODT)
    luogu P5787 二分图 /【模板】线段树分治
    线段树
    luogu P1450 [HAOI2008]硬币购物
    树形DP
    luogu P3047 [USACO12FEB]Nearby Cows G
    1069: 向Z同学学习
    1067: 有问题的里程表
    1066: 字符分类统计
  • 原文地址:https://www.cnblogs.com/pk28/p/8484238.html
Copyright © 2011-2022 走看看