字符串同构

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

题目  判断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;
    }
};

  

时间: 2024-12-21 15:31:11

字符串同构的相关文章

字符串的最小最大表示法O(n)

以下介绍内容内容转自:http://blog.csdn.net/zy691357966/article/details/39854359 网上看了这篇文章后还是感觉有些地方讲的没有详细的证明所以添加了一点 红色字是博主写的 求字符串的循环最小表示: 上面说的两个字符串同构的,并没有直接先求出Min(s),而是通过指针移动,当某次匹配串长时,那个位置就是Min(s).而这里的问题就是:不是给定两个串,而是给出一个串,求它的Min(s),eg:Min("babba") = 4.那么由于这里

【转载】字符串最小表示法-O(n)算法

原博客链接:http://blog.csdn.net/zy691357966/article/details/39854359 未授权,侵权删. 因为这篇博客写得真好..转载了.. 红色的字是原博主写的,蓝色的字是我加的. ------------------------------------------------------------------------------------------------------------------------------------------

Leetcode题解——数据结构之字符串

1. 字符串循环移位包含 2. 字符串循环移位 3. 字符串中单词的翻转 4. 两个字符串包含的字符是否完全相同 5. 计算一组字符集合可以组成的回文字符串的最大长度 6. 字符串同构 7. 回文子字符串个数 8. 判断一个整数是否是回文数 9. 统计二进制字符串中连续 1 和连续 0 数量相同的子字符串个数 1. 字符串循环移位包含 编程之美 3.1 s1 = AABCD, s2 = CDAA Return : true 给定两个字符串 s1 和 s2,要求判定 s2 是否能够被 s1 做循环

最小表示法和最大表示法模板

以下摘自http://blog.csdn.net/zy691357966/article/details/39854359 求字符串的循环最小表示: 上面说的两个字符串同构的,并没有直接先求出Min(s),而是通过指针移动,当某次匹配串长时,那个位置就是Min(s).而这里的问题就是:不是给定两个串,而是给出一个串,求它的Min(s),eg:Min(“babba”) = 4.那么由于这里并非要求两个串的同构,而是直接求它的最小表示,由于源串和目标串相同,所以处理起来既容易又需要有一些变化:我们仍

205. Isomorphic Strings [easy] (Python)

题目链接 https://leetcode.com/problems/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

LeetCode OJ: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.

LeetCode 205 Isomorphic Strings(同构的字符串)(string、vector、map)(*)

翻译 给定两个字符串s和t,决定它们是否是同构的. 如果s中的元素被替换可以得到t,那么称这两个字符串是同构的. 在用一个字符串的元素替换另一个字符串的元素的过程中,所有字符的顺序必须保留. 没有两个字符可以被映射到相同的字符,但字符可以映射到该字符本身. 例如, 给定"egg","add",返回真. 给定"foo","bar",返回假. 给定"paper","title",返回真. 批

(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.

【LeetCode-面试算法经典-Java实现】【205-Isomorphic Strings(同构字符串)】

[205-Isomorphic Strings(同构字符串)] [LeetCode-面试算法经典-Java实现][所有题目目录索引] 代码下载[https://github.com/Wang-Jun-Chao] 原题 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