字符串同构

Posted julie_yang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串同构相关的知识,希望对你有一定的参考价值。

*****************************************

     题目  判断s和t是不是一种模式,eg add  cpp是同构

*****************************************

     思路:用hash表,将s、t中所有出现过的字符 对应到1-26,比较对应的数字是否相同

class Solution {
public:
    bool isIsomorphic(string s, string t) {

        if(s.length()!= t.length())
        {
            return false;
        }   
        
        map<char ,int>mapchar;
        map<char ,int>mapchar1;
        
        for(int i=0;i<s.length();i++)
        {
            if(mapchar.find(s[i]) == mapchar.end())
            {
                if(mapchar1.find(t[i]) != mapchar1.end())
                   {
                       return false;
                       
                   }
                mapchar.insert(pair<char,int>(s[i],i));
                mapchar1.insert(pair<char,int>(t[i],i));   
            }
            else
            {       if(mapchar1.find(t[i]) == mapchar1.end())
                        return false;
                   
                    if(mapchar1[t[i]] != mapchar[s[i]])
                    {   
                        return false;
                    }
            }
        }
        return true;
    }
};

  

以上是关于字符串同构的主要内容,如果未能解决你的问题,请参考以下文章

205. 同构字符串

Vijos 有根树的同构问题字符串---最小表示法

LeetCode 0205. 同构字符串

字符串同构

LeetCode 1759. 统计同构子字符串的数目

LeetCode 1759. 统计同构子字符串的数目