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

    题目解答:判断两个单词是否是同构的。需要两个map,分别控制s到t和t到s的映射关系。

    代码如下:

    class Solution {
    public:
        bool isIsomorphic(string s, string t) {
            if(s.length() != t.length())
                return false;
            map<char,char> map_st;
            map<char,char> map_ts;
            for(int i = 0;i < s.length();i++)
            {
                if((map_st.find(s[i]) == map_st.end())|| (map_ts.find(t[i]) == map_ts.end()))
                {
                    if(map_st.find(s[i]) != map_st.end())
                        return false;
                    else if(map_ts.find(t[i]) != map_ts.end())
                        return false;
                    else
                    {
                        map_st[s[i]] = t[i];
                        map_ts[t[i]] = s[i];
                    }
                }
                else
                {
                    if(map_st[s[i]] != t[i])
                        return false;
                }
            }
            return true;
        }
    };

  • 相关阅读:
    二分图的最大匹配
    染色法判定二分图
    kruskal求最小生成树
    prim算法求最小生成树
    floyd
    spfa算法
    bellman_ford
    Dijkstra
    文件操作_1-18 选择题
    会话控制_2-5 编程练习
  • 原文地址:https://www.cnblogs.com/CodingGirl121/p/5417710.html
Copyright © 2011-2022 走看看