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;
        }
    };

  • 相关阅读:
    ToString 格式化数值
    肾积水
    十月一日
    9月27日 星期六
    080929 气温骤降
    東京の空
    9月26日 星期五
    9月30日 星期二
    粉蓝房子&电影
    080922 雨
  • 原文地址:https://www.cnblogs.com/CodingGirl121/p/5417710.html
Copyright © 2011-2022 走看看