当前位置: 首页 > news >正文

LeetCode 205 同构字符串

题目

给定两个字符串 s 和 t ,判断它们是否是同构的。

如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。

每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。

示例 1:

输入:s = "egg", t = "add"
输出:true

示例 2:

输入:s = "foo", t = "bar"
输出:false

示例 3:

输入:s = "paper", t = "title"
输出:true

提示:

  • 1 <= s.length <= 5 * 104
  • t.length == s.length
  • s 和 t 由任意有效的 ASCII 字符组成

题目解析

同构字符串意思就是字符串1中的每个字符都唯一映射字符串b中的一个字符

比如 a---->d,c----->e,这个对应关系是双向的,即1中字符a--->d,那么2中字符d也一定是对应的a

不能有这种场景如a--->d;c----->d;

思路

可以使用一个map来存储对应关系,键为字符串1的当前字符,值为字符串2的当前字符

如果遇到map中已经有了该key,那么就需要取出来value,判断value是否与字符串2的当前值一样,一样说明是对应的,不一样说明不对应,直接返回false

例如 abb ,cdf ,

但是这种情况忽略了一种情况

badc,babe,因为b已经对应了b,那么d就不能再对应b

代码

class Solution {public boolean isIsomorphic(String s, String t) {int a = s.length();int b=t.length();//长度不等,直接返回falseif(a!=b){return false;}//定义两个map存储对应关系HashMap<Character,Character> map = new HashMap<>();HashMap<Character,Character> map1 = new HashMap<>();for(int i=0;i<a;i++){char c = s.charAt(i);char d = t.charAt(i);//如果map已经存在了key c,那么要取出值然后判断对应值是否与d相等if(map.containsKey(c)){char e = map.get(c);
//不相等说明映射错误if(d!=e){return false;}//判断map1中已经存在了d,取出值f与c对比,看是否相等}else if(map1.containsKey(d)){char f = map1.get(d);
//不相等说明有误if(f!=c){return false;}}else{
//map中都不包括该key,存入mapmap.put(c,d);map1.put(d,c);}}return true;}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringBoot--05--整合WebSocket,实现全双工通信
  • python 已知x+y=8 求x*y*(x-y)的最大值
  • 一些有趣的XSS注入GAME
  • 【Delphi】中多显示器操作基本知识点
  • vmware安装openEuler操作系统
  • C++(11)类语法分析(2)
  • 【JAVA入门】Day21 - 时间类
  • ThinkPHP中Db事务的使用:删除操作的示例
  • JAVA SpringBoot jar 程序 Systemctl 生产环境部署
  • 函数声明与函数表达式的区别是什么?
  • 【数学建模】趣味数模问题——棋子颜色问题
  • 解决使用uniapp时,uni.switchTab跳转标签页面不刷新的问题
  • android display 笔记(六)SurfaceFlinger初始化
  • KEEPALIVED高可用集群知识大全
  • 基于YOLOv8-pose的手部关键点检测(3)- 实现实时手部关键点检测
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Java方法详解
  • JS字符串转数字方法总结
  • Laravel5.4 Queues队列学习
  • mysql innodb 索引使用指南
  • php中curl和soap方式请求服务超时问题
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • Spring Cloud中负载均衡器概览
  • windows下mongoDB的环境配置
  • Zsh 开发指南(第十四篇 文件读写)
  • 百度地图API标注+时间轴组件
  • 给Prometheus造假数据的方法
  • 关于Java中分层中遇到的一些问题
  • 推荐一个React的管理后台框架
  • 运行时添加log4j2的appender
  • FaaS 的简单实践
  • # 职场生活之道:善于团结
  • #pragma multi_compile #pragma shader_feature
  • ${factoryList }后面有空格不影响
  • ()、[]、{}、(())、[[]]命令替换
  • (2)从源码角度聊聊Jetpack Navigator的工作流程
  • (8)STL算法之替换
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (pojstep1.1.2)2654(直叙式模拟)
  • (Python) SOAP Web Service (HTTP POST)
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (二)斐波那契Fabonacci函数
  • (附源码)spring boot球鞋文化交流论坛 毕业设计 141436
  • (附源码)ssm考试题库管理系统 毕业设计 069043
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .JPG图片,各种压缩率下的文件尺寸
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net 调用海康SDK以及常见的坑解释
  • .NET 通过系统影子账户实现权限维持
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)