Leetcode205. 同构字符串

LeetCode205:同构字符串(字符串-Map集合,查找表) LeetCode205:同构字符串(字符串-Map集合,查找表) 1、给定两个字符串 s 和 t,判断它们是否是同构的。 2、如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 方法一:同构字符串的性质: 同构字符串中,同一个位置的字符在本串中第一次出现的位置相同。 不同构的情况:我们假设拿s串和t串作对比 1.s串中相同的字符,对应的t串中的字符并不相等 2.s串中不同的字符 阅读详情

Every day a leetcode

题目来源:205. 同构字符串

解法1:STL string.find()

我们判断 s 和 t 每个位置上的字符是否都一一对应,即 s 的任意一个字符被 t 中唯一的字符对应,同时 t 的任意一个字符被 s 中唯一的字符对应。

这种对应叫做双射关系。

使用STL string.find()能很好解决这个问题。

代码:

/*
 * @lc app=leetcode.cn id=205 lang=cpp
 *
 * [205] 同构字符串
 */

// @lc code=start
class Solution
{
public:
    bool isIsomorphic(string s, string t)
    {
        if (s.size() != t.size())
            return false;
        for (int i = 0; i < s.size(); i++)
            if (s.find(s[i]) != t.find(t[i]))
                return false;
        return true;
    }
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中n是字符串的长度。

空间复杂度:O(1)。

解法2:哈希

unordered_map 容器,直译过来就是"无序 map 容器"的意思。

所谓“无序”,指的是 unordered_map 容器不会像 map 容器那样对存储的数据进行排序。

换句话说,unordered_map 容器和 map 容器仅有一点不同,即 map 容器中存储的数据是有序的,而 unordered_map 容器中是无序的。

在这里插入图片描述

代码:

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

运行结果:

在这里插入图片描述

复杂度分析:

在这里插入图片描述

LAMMPS实战指南 - 从in文件到分子动力学模拟的完整流程解析 本文详细解析了LAMMPS分子动力学模拟的完整流程,从理解in文件的核心作用与基础结构开始,逐步指导如何创建模拟体系、选择势函数、进行能量最小化与初始化,并深入讲解了NVT/NPT系综弛豫与生产模拟的关键步骤。文章还提供了常见问题的避坑指南与实战技巧,帮助初学者快速掌握从编写in文件到成功运行模拟的全过程。 阅读详情

相关推荐

Anaconda详细安装及使用教程(带图文)

Anacond的介绍 Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda的下载文件比较大(约531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和Python)。 Conda是一个开源的包、环境管理器,可以用于...

代码帮 186万+

leetcode 205.同构字符串

leetcode 205.同构字符串 题目描述 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 输入: s = "egg", t = "add" 输出: true 示例 2: 输入: s = "fo...

EngineerHe的博客 2015

别再让信号‘撞墙’了!手把手教你用嘉立创阻抗计算器搞定PCB高速线(附免费压层结构选择)

本文详细介绍了如何使用嘉立创阻抗计算器解决PCB高速线设计中的阻抗匹配问题,避免信号反射和传输损耗。通过免费压层结构选择和五步计算法,帮助工程师快速掌握USB3.0差分线等高速信号的设计技巧,提升PCB设计效率和信号质量。

weixin_30736301的博客 278

LeetCode 205 同构字符串

LeetCode 205 同构字符串 题目链接 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。 示例 1: 输入:s = "egg", t = "add" 输出:true 示例 2: 输入:s = "foo", t = "bar" 输出:false 示例 3: 输入:s =

旺崽的博客 3506

Android P HAL层添加HIDL实例(详细实现步骤)

Android P HAL层添加HIDL实例 本文将介绍如何在P OS上添加HIDL实例,简单增加seLinux策略使得可以在system_service调用测试,并用模拟器emulator验证。 调用过程为 APP->TestManager->TestService->ITast.hal 文章目录Android P HAL层添加HIDL实例实现过程一 、hardware部分1...

sinat_18179367的博客 1万+

iTunes备份文件路径修改方法

因为以前的很多帖子iTunes都不是从微软下载的,而现在的iTunes一般都是微软商店里面的,它的路径为:“C:\Users\ 你的用户名 \Apple\MobileSync” (注:用户名,根据个人电脑名称更改)打开iTunes备份路径:“C:\Users\txh\AppData\Roaming\Apple Computer\MobileSync”,其中文件夹MobileSync就是用来存放备份文件的。创建你想备份纯在的目录创建备份文件目录(我的是G:/APPLE/Backup)2.粘贴的剪切文件目录。

尘玥的故事 1万+

力扣第205题“同构字符串”

本文详细解读了力扣第205题“同构字符串”,通过使用哈希表高效地解决了这一问题,并提供了详细的解释和模拟面试问答。希望读者通过本文的学习,能够在力扣刷题的过程中更加得心应手。

10年数据\经营分析经验,现任大厂数据分析负责人 1274

直流有刷电机控制 - 驱动电路(二)

1.如图所示为最常见的推挽驱动电路,我附加了具有正反转功能的电机驱动控制,正反转是由两个继电器组成。使用推挽电路来驱动NMOS管时充电电流和放电电流都很大,因此NMOS管导通快,关断也快,而且NMOS温度不会很高。下面来介绍一下该电路的原理。(1)PWM_MCU是由单片机给出的PWM波信号,该信号是由一些列高低电平的方波构成。当信号为高电平的时候Q3导通,经过R47再到Q5的g极,此时mos导通,如果是K1闭合是正转那么K2闭合就是反转。(2)当PWM低电平时使得Q3关断,Q6导通。

u011030644的博客 4719

LeetCode 205同构字符串

LeetCode 205同构字符串Easy 题目简述:给定两个字符串 s和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。假设 s 和 t 具有相同的长度。 输入:s = “egg”, t = “add” 输出:true 输入:s = “foo”, t = “bar” 输出:false 输入:s = “paper”

XBlog 501

深入探究ASP.NET Core读取Request.Body的正确方式

前言# 相信大家在使用ASP.NET Core进行开发的时候,肯定会涉及到读取Request.Body的场景,毕竟我们大部分的POST请求都是将数据存放到Http的Body当中。因为笔者日常开发所使用的主要也是ASP.NET Core所以笔者也遇到这这种场景,关于本篇文章所套路的内容,来自于在开发过程中我遇到的关于Request.Body的读取问题。在之前的使用的时候,基本上都是借助搜索引擎搜索的答案,并没有太关注这个,发现自己理解的和正确的使用之间存在很大的误区。故有感而发,便写下此文,以作记录。学无止境

萌兔兔MMQ!! 777

〔重庆理工大学〕大学物理实验--变温霍耳效应及其参数测定

每个老师要求不同,实验报告内容和数据仅供参考。

Pretty Boy Fox的博客 3043

[Golang]力扣Leetcode - 205.同构字符串(哈希)

[Golang]力扣Leetcode - 205.同构字符串(哈希)

皮埃尔的博客 626

基于深度学习的图像修复系统,GAN图像修复,图像修复算法研究,并实现系统登录和注册,全网独发

近年来,深度学习已成为计算机视觉领域的研究热点,基于深度学习的图像修复技术弥补了传统修复方法长期存在的不足,显著提高了生成结果的质量。深度学习是指模仿人脑机制设计的具有深层结构的神经网络。深度学习作为一种表征学习,通过模仿人脑神经元之间的信息传递方式来学习输入数据的特征,并找到输入和输出数据之间的映射关系。通过在图像修复中应用深度学习技术,可以准确学习图像的语义信息,然后根据信息预测缺失的内容,大大克服了传统修复算法的不足,使结果更具逻辑性。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 8258

【简单】力扣算法题解析LeetCode205:同构字符串

题目要求判断两个字符串是否同构,即字符可以一一映射且顺序不变。解题思路是使用两个数组分别记录字符映射和标记是否被占用。遍历字符串时检查映射一致性,若冲突则返回false。Java实现中,map数组记录s到t的字符映射,used数组标记t中字符是否被使用。时间复杂度O(n),空间复杂度O(1)(固定256大小数组)。

ylumwd的博客 826

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

LeetCode第205题_同构字符串

给定两个字符串s和t,判断它们是否是同构的。如果s中的字符可以按某种映射关系替换得到t,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

qq_40263592的博客 2225

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

字符串同构问题——leetcode205/leetcode290

205. 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 cha

白夜行 1962

力扣205.同构字符串

两个字符串s和ts中的每个字符可以唯一映射到t中的对应字符;t中的每个字符也能唯一映射回s中的对应字符;映射关系是双向唯一的(不能一对多,也不能多对一)。s = "egg"t = "add"→ 同构(e→a,g→d,双向唯一);s = "foo"t = "bar"→ 不同构(o→a 和 o→r,一对多);s = "ab"t = "aa"→ 不同构(a→a,b→a,多对一)。哈希表(也叫散列表)是一种通过「键 - 值(Key-Value)」对存储数据。

2501_93509832的博客 844

力扣(leetcode)第205题同构字符串(Python)

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。最后,我写了一篇MySQL教程,里面详细的介绍了MySQL的基本概念以及操作指令等内容,欢迎阅读!如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。输入:s = “paper”, t = “title”输入:s = “egg”, t = “add”输入:s = “foo”, t = “bar”

qq_58737789的博客 832

LeetCode 205: 同构字符串

目录LeetCode 205: 同构字符串题目描述解题哈希表另一种映射find函数 LeetCode 205: 同构字符串 题目描述 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 【示例 1】 输入: s = “egg”, t = “add” 输出: true 【示例 2】 输入: s = “foo”, t =

s_Shune 160

LeetCode 205. 同构字符串

题目描述: 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 输入: s = “egg”, t = “add” 输出: true 示例 2: 输入: s = “foo”, t = “bar” 输出: false 示例 3: 输入: s = “paper”, t = “title” 输出: true 说

lxx3478的博客 326

leetcode(力扣)205. 同构字符串

https://leetcode-cn.com/problems/isomorphic-strings/submissions/ 越发觉着按照c++的一些逻辑去做python的题然后找对应的存储结构是一件很蠢的事,在一段时间的学习练习后(当然主要是刷题,数据结构还没有认识完全),终于决定要好好整理一下每一道题,本来想当一个兔派,但是真的感觉这样使可以很快的把每道题ac,但是没有感受到python的...

w317672256的博客 308

205. 同构字符串【 力扣(LeetCode) 】

给定两个字符串 s 和 t ,判断它们是否是同构的。如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

yyh520025的博客 623

LeetCode刷题之205.同构字符串

LeetCode刷题之205.同构字符串 我不知道将去向何方,但我已在路上! 时光匆匆,虽未曾谋面,却相遇于斯,实在是莫大的缘分,感谢您的到访 ! 题目: 给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但...

胡萝卜 286
上一篇: Leetcode171. Excel 表列序号
下一篇: Leetcode219. 存在重复元素 II
UestcXiye
博客等级 码龄8年 9028粉丝 1306原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

UestcXiye

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值