【LeetCode】205. 同构字符串 【Map 双射】
题目链接:https://leetcode-cn.com/problems/isomorphic-strings/
题目描述
给定两个字符串 s 和 t,判断它们是否是同构的。
如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。
所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。
测试样例
示例 1:
输入: s = "egg", t = "add"
输出: true
示例 2:输入: s = "foo", t = "bar"
输出: false
示例 3:输入: s = "paper", t = "title"
输出: true
说明:
你可以假设 s 和 t 具有相同的长度。
题解
两个字符串需要两两对应,因此可用两个Map实现双射。
记得之前做过一个利用双Map的题:【LeetCode】290. 单词规律 【哈希】
代码
class Solution {public boolean isIsomorphic(String s, String t) {if (s.length() != t.length())return false;Map<Character, Character> s2t = new HashMap<Character, Character>();Map<Character, Character> t2s = new HashMap<Character, Character>();int len = s.length();for (int i = 0; i < len; i++){char si = s.charAt(i), ti = t.charAt(i);if ((s2t.containsKey(si) && s2t.get(si) != ti) || (t2s.containsKey(ti) && t2s.get(ti) != si))return false;s2t.put(si, ti);t2s.put(ti, si);}return true;}
}
【LeetCode】205. 同构字符串 【Map 双射】相关推荐
- leetcode 205.同构字符串
leetcode 205.同构字符串 题目描述 给定两个字符串 s 和 t,判断它们是否是同构的. 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的. 所有出现的字符都必须用另一个字符 ...
- LeetCode 205. 同构字符串(哈希map)
1. 题目 给定两个字符串 s 和 t,判断它们是否是同构的. 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的. 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序. 两个字符 ...
- leetcode 205. 同构字符串(hash)
给定两个字符串 s 和 t,判断它们是否是同构的. 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的. 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序.两个字符不能映射到同一 ...
- leetcode 205. 同构字符串
题目 思路 维护两个 HashMap,一个存放字符串 1 到字符串 2 的映射,另一个存放字符串 2 到字符串 1 的映射. 对于字符串中的每一个字符,分别验证是否符合这两个映射. 题解 import ...
- 2022-1-19 Leetcode.205.同构字符串
自己的写法,使用双向映射. /*class Solution { public:bool isIsomorphic(string s, string t) {if(s.size() != t.size ...
- Leetcode 205. 同构字符串 解题思路及C++实现
解题思路: 仔细阅读题意,应注意到一个 hash表是不够的,需要新建两个hash表,分别存储 s->t 和 t->s 的映射. class Solution { public:bool i ...
- LeetCode:205(Python)—— 同构字符串(简单)
同构字符串 概述:给定两个字符串 s 和 t ,判断它们是否是同构的.如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的.每个出现的字符都应当映射到另一个字符,同时不改变字符 ...
- LeetCode简单题之同构字符串
题目 给定两个字符串 s 和 t ,判断它们是否是同构的. 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的. 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序. ...
- 数梦工场的笔试编程1——同构字符串判断
abb和egg title和paper是同构字符串,foo和bar就不是同构字符串 什么是同构字符串? 两个个字符串的每个字母都匹配同一个映射关系,比如egg -> add的映射关系就是:e-& ...
最新文章
- Puppet SaltStack Chef Ansible
- CCIE理论-第九篇-IPV6详细介绍
- Node.js进程管理之Process模块
- Kafka(三)-- Kafka主要参数
- 信息学奥赛一本通(1315:【例4.5】集合的划分)
- script标签的加载解析执行
- HDU1370 Biorhythms【中国剩余定理】
- 最长单调递增子序列及思维题——动态规划
- Java 7:最新特性更新、代码示例及性能测试
- 单表查询之选择查询 + 多表查询(2020.3.20 )
- 快速突破面试算法之哈希表篇
- ubuntu的一些技巧
- CodeForces 584 D.Dima and Lisa(数论)
- 因果分析.科学实验评估
- 如何显示隐藏的 Chrome 扩展程序图标
- mysql skip_counter_mysql sql_salve_skip_counter
- 【上传】Nginx 上传文件
- 【Nginx 源码学习】Nginx 的缓冲区
- Linux 内存的延迟分配
- CFA【异常检测:Embedding_based】