LeetCode 力扣 205. 同构字符串
给定两个字符串 s 和 t ,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
示例 1:
输入:s = "egg", t = "add"
输出:true
示例 2:
输入:s = "foo", t = "bar"
输出:false
示例 3:
输入:s = "paper", t = "title"
输出:true
思路
hash表解决单方向的映射问题,即只能保证从多对多变成多对一,因此需要翻转两次hash表才行
code
class Solution {
public:
//hash只能 解决单方向的映射问题,即只能保证从多对多变成
// 多对一,因此要来两边才行
bool isIsomorphic(string s, string t) {
//方法1:用hash记录映射关系
//方法2:用数组hash来记录映射关系
unordered_map<char,char> umap;
if(s.size() != t.size()){
return false;
}
for(int i = 0 ;i < s.size() ; i ++){
if(umap.find(s[i]) == umap.end()){
umap.insert(make_pair(s[i],t[i]));
}else{
if(umap[s[i]] != t[i]){
return false;
}
}
}
umap.clear();
swap(s,t);
for(int i = 0 ;i < s.size() ; i ++){
if(umap.find(s[i]) == umap.end()){
umap.insert(make_pair(s[i],t[i]));
}else{
if(umap[s[i]] != t[i]){
return false;
}
}
}
return true;
}
};
本文由博客一文多发平台 OpenWrite 发布!
LeetCode 力扣 205. 同构字符串的更多相关文章
- LeetCode 205. 同构字符串(Isomorphic Strings)
205. 同构字符串 205. Isomorphic Strings
- Java实现 LeetCode 205 同构字符串
205. 同构字符串 给定两个字符串 s 和 t,判断它们是否是同构的. 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的. 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序. ...
- 刷题-力扣-541. 反转字符串 II
541. 反转字符串 II 题目链接 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reverse-string-ii 著作权归领扣网络所有. ...
- leetcode.字符串.205同构字符串-Java
1. 具体题目 给定两个字符串 s 和 t,判断它们是否是同构的.如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的.所有出现的字符都必须用另一个字符替换,同时保留字符的顺序.两个字符不 ...
- Leetcode(力扣) 整数反转
Leetcode 7.整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转. 示例: 输入: -123 输出: -321 注意: 假设我们的环境只能存储得下 32 位的有符 ...
- 62 (OC)* leetCode 力扣 算法
1:两数之和 1:两层for循环 2:链表的方式 视频解析 2:两数相加 两数相加 3. 无重复字符的最长子串 给定一个字符串,请找出其中长度最长且不含有重复字符的子串,计算该子串长度 无重复字符的最 ...
- leetcode 力扣第七题: 整数反转
哇,发现会写算法的人好牛逼啊,而且好像大多写算法的都不用PHP,哈哈哈哈哈,在领扣里面都没有php这个选项,真尴尬 从几个月之前就想刷题了,但是不会啊,很懵逼啊,昨天搜了一下答案,好像才打开了我这个写 ...
- LeetCode | 力扣周赛C题 5370. 设计地铁系统
请你实现一个类 UndergroundSystem ,它支持以下 3 种方法: checkIn(int id, string stationName, int t) 编号为 id 的乘客在 t 时刻进 ...
- Leetcode力扣45题 跳跃游戏 II
原题目: 跳跃游戏 II 给定一个非负整数数组,你最初位于数组的第一个位置. 数组中的每个元素代表你在该位置可以跳跃的最大长度. 你的目标是使用最少的跳跃次数到达数组的最后一个位置. 示例: 输入: ...
- leetcode 力扣 两数之和
class Solution: def addTwoNumbers(self, l1, l2): n1 = [] n2 = [] nl = [] while l1.next and l2.next: ...
随机推荐
- 如何在原生鸿蒙中进行RN热加载
一.背景 在上一篇博客中,我分享了将RN的bundle包在原生鸿蒙开发中进行使用.但是如果我们在实际的开发过程中,每次修改完代码都需要打包,然后重新运行原生项目的话效率就有点太低了. 原生鸿蒙支持RN ...
- AI智能学生体测小程序解决方案
引言: 近年来,随着教育理念的提升,对学生综合素质的教育越发重视,特别是越发重视学生的身体素质提升,各阶段的升学考试也将体测纳入考核范围.学校也推出了各种体测锻炼促进手段,今天为您介绍一个基于小程序的 ...
- 国产数据库oceanBbase,达梦,金仓与mysql数据库的性能对比 一、比对方法和结果
最近调研了三款国产化数据库与mysql做对比,调研主要性能指标是大数据写入速度.大数据读取速度以及是否支持分表. 一.测试结果 测试结果与预期的差别很大 1.先说oceanBase社区版这款数 ...
- dotnet学习笔记-专题01-异步与多线程-01
专题01 异步 多线程 1. Thread类 1.1 使用Thread创建线程 namespace ConsoleApp1; internal class Program { private stat ...
- 方法区回收过程与GC的并发与并行
主要回收废弃常量和无用的类 废弃常量包括字面量.类或接口.方法.字段的符号引用等 废弃指的是没有任何地方引用这个常量. 无用的类 满足的三个条件: 1.没有该类的任何实例存在 2.加载该类的Class ...
- elasticsearch权限验证(Auth+Transport SSL)
转载:https://knner.wang/2019/11/26/install-elasticsearch-cluster-7-4.html 在新版的Elastic中,基础版(免费)的已经提供了基础 ...
- Mybatis 实现多字段动态排序
背景 在项目的开发过程中,可能会遇到对数据表多个字段进行排序的需求(第一句话就这么难懂,不要害怕,万事开头难,结尾更难,开玩笑哒),结合需求轻松易懂. 需求 现在有一张User表 男同学先按 age ...
- Simple FOC内置通信接口学习(二):电机命令接口
本文参(zhao)考(chao)至官方文档https://docs.simplefoc.com/docs_chinese/commander_interface Commander 接口 Comman ...
- Windows更改远程桌面端口
为了远程安全,默认在3389改为别的端口. 本示例为3389改为53389 1.步骤:打开"开始→运行",输入"regedit",打开注册表,进入以下路径: [ ...
- Redis应用—5.Redis相关解决方案
大纲 1.数据库与缓存一致性方案 2.热key探测系统处理热key问题 3.缓存大value监控和切分处理方案 4.Redis内存不足强制回收监控告警方案 5.Redis集群缓存雪崩自动探测 + 限流 ...