首页 > 其他分享 >205. 同构字符串

205. 同构字符串

时间:2025-01-14 14:11:56浏览次数:1  
标签:字符 同构 205 映射 map2 map1 字符串 卡哥 find

题目

这道题一直想着用一个哈希表能不能做出来,最终没有做出来。

看了卡哥思路,卡哥是用了两个哈希表,使用两个map 保存 s[i] 到 t[j] 和 t[j] 到 s[i] 的映射关系,如果发现对应不上,立刻返回 false。

看了卡哥代码敲的:

class Solution {
public:
    bool isIsomorphic(string s, string t) {
        unordered_map<char, char> map1;
        unordered_map<char, char> map2;
        for (int i = 0; i < s.size(); ++i)
        {
            if (map1.find(s[i]) == map1.end())
                map1[s[i]] = t[i];
            if (map2.find(t[i]) == map2.end())
                map2[t[i]] = s[i];
            if (map1[s[i]] != t[i] || map2[t[i]] != s[i])
                return false;
        }
        return true;
    }
};

然后再重新审视了下题目,其中题目中的这段话:不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,似乎就是在暗示我们要用两个哈希表来做,从s到t的映射只能解决相同字符只能映射到同一个字符上,从t到s的映射只能解决不同字符不能映射到同一个字符上。感觉这一切的根源是find函数的使用,find函数是查找键key是否存在。

标签:字符,同构,205,映射,map2,map1,字符串,卡哥,find
From: https://www.cnblogs.com/hisun9/p/18670644

相关文章

  • 1130: 【入门】简单a+b(字符串式子a+b)
    看到了吗,不是正常的输入a和b,然后直接相加,而是一个式子,没关系,一个字符串对于电脑而言奥秘多多,给电脑一个式子,他会反应吗?是不是不会。诶,但是让他去提取,那就是“怎么看都看不够”,嘿嘿,开个玩笑,就是提取字符串里的信息可以解决不少问题,这题就是这样。下面是代码:#include<bits/stdc......
  • #1407. 字符串的插入
    题目描述输入一个句子(一行),将句子中的每一个单词翻转后输出。输入格式只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。输出格式翻转每一个单词后的字符串,单词之间的空格需与原文一致。输入数据1helloworld输出数据1ollehdlrow代码:#include<iostr......
  • [CF 2055C] The Trails
    思路佛罗里达不养闲人颓了两分钟继续看题,最近不敢用计时器???顺手去修了个电脑,无敌了顺手去修了个\(\rm{VScode}\),无敌了简化题意给定一个\(n\)行\(m\)列的矩阵,矩阵的\((i,j)\)位置上有值\(a_{i,j}\)给定一条从左上到右下的只向下和向右的路径,求如何......
  • 写一个方法判断字符串是否为回文字符串
    在前端开发中,你可以使用JavaScript来编写一个方法,用于判断字符串是否为回文字符串。回文字符串是指正序和倒序读都一样的字符串。以下是一个简单的JavaScript函数,用于实现这个功能:functionisPalindrome(str){//去除字符串中的空格,并转换为小写,以便不区分大小写和空格......
  • 【C++】字符串中的 insert 方法深层分析
    博客主页:[小ᶻ☡꙳ᵃⁱᵍᶜ꙳]本文专栏:C++文章目录......
  • C16.【C++ Cont】string类字符串的关系运算和与string有关的函数
    目录1.知识回顾:strcmp函数2.六个关系运算符示例代码1运行结果示例代码2运行结果3.stoi和stol函数1.stoi函数函数声明使用说明示例代码3运行结果示例代码4运行结果示例代码5运行结果示例代码6运行结果2.stol函数4.stod和stof函数1.stod函数函数声明示例......
  • 字符串+图形
    https://codeforces.com/gym/580226/problem/F#include<bits/stdc++.h>#definelcp<<1#definercp<<1|1#defineINF2e9usingnamespacestd;#defineendl'\n'usingll=longlong;usingpii=pair<ll,ll>;constdoubleP......
  • JAVA之PAI&字符串
    1、API(ApplicationProgrammingInterface):应用程序编程接口JAVAAPI:指的是JDK中提供的各种功能的java类2、字符串String     1.java.long.String类代表字符串     2.字符串的内容是不会发生改变的,它的对象在创建后不能被更改     3.创建Str......
  • leetcode3333 找到初始输入字符串II
    用键盘输入字符时,可能因为在一个键上停留太久,导致同一个字符被输入多次。给定word表示最终显示的字符串,以及整数k,表示希望输入字符串的最少长度,求希望输入串的总方案数,对1E9+7取模。1<=|word|<=5E5;1<=k<=2000;word只包含小写字母分析:1、假设最终串的长度为n,对其分组循环,把相......
  • Redis 是一个开源的高性能键值对存储数据库,通常被用作缓存、消息队列和持久化数据库。
    Redis服务器是什么?Redis是一个开源的高性能键值对存储数据库,通常被用作缓存、消息队列和持久化数据库。Redis支持多种数据结构,如字符串、哈希、列表、集合、有序集合、位图等。它被广泛用于需要快速读写操作、低延迟的场景。Redis可以作为一个独立的数据库使用,也可以作为缓......