leetcode 205. 同构字符串
题目
思路
维护两个 HashMap,一个存放字符串 1 到字符串 2 的映射,另一个存放字符串 2 到字符串 1 的映射。
对于字符串中的每一个字符,分别验证是否符合这两个映射。
题解
import java.util.HashMap;class Solution {/*** 验证两个字符串中,相同字母出现的位置是否相同* 维护两个 HashMap,一个存放字符串 1 到字符串 2 的映射,另一个存放字符串 2 到字符串 1 的映射* 对于每一个字符,分别验证这两个映射*/public boolean isIsomorphic(String s, String t) {if (s == null || t == null || s.length() != t.length()) return false;HashMap<Character, Character> hashMapS2T = new HashMap();HashMap<Character, Character> hashMapT2S = new HashMap();char[] ss = s.toCharArray();char[] tt = t.toCharArray();for (int i = 0; i < ss.length; i++) {if (hashMapS2T.containsKey(ss[i])) {if (tt[i] != hashMapS2T.get(ss[i]))return false;} else {hashMapS2T.put(ss[i], tt[i]);}if (hashMapT2S.containsKey(tt[i])) {if (ss[i] != hashMapT2S.get(tt[i]))return false;} else {hashMapT2S.put(tt[i], ss[i]);}}return true;}
}
评论区的一些奇特解法
for (let i = 0; i < s.length; i++) {if (s.indexOf(s[i]) !== t.indexOf(t[i])) return false;
}
return true;
leetcode 205. 同构字符串相关推荐
- 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. 同构字符串 解题思路及C++实现
解题思路: 仔细阅读题意,应注意到一个 hash表是不够的,需要新建两个hash表,分别存储 s->t 和 t->s 的映射. class Solution { public:bool i ...
- 2022-1-19 Leetcode.205.同构字符串
自己的写法,使用双向映射. /*class Solution { public:bool isIsomorphic(string s, string t) {if(s.size() != t.size ...
- 【LeetCode】205. 同构字符串 【Map 双射】
题目链接:https://leetcode-cn.com/problems/isomorphic-strings/ 题目描述 给定两个字符串 s 和 t,判断它们是否是同构的. 如果 s 中的字符可以 ...
- LeetCode:205(Python)—— 同构字符串(简单)
同构字符串 概述:给定两个字符串 s 和 t ,判断它们是否是同构的.如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的.每个出现的字符都应当映射到另一个字符,同时不改变字符 ...
- LeetCode简单题之同构字符串
题目 给定两个字符串 s 和 t ,判断它们是否是同构的. 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的. 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序. ...
- LeetCode实战:字符串相乘
题目英文 Given two non-negative integers num1 and num2 represented as strings, return the product of num ...
最新文章
- 想法2: 充电性冰袋
- 威胁预警|多个挖矿僵尸网络开始使用ThinkPHP v5漏洞 威胁升级
- mongodb type it for more
- 运维利器1-supervisor
- tensorflow 模型预训练后的参数restore finetuning
- Matlab-绘制日期图
- 怎么使用 JavaScript 将网站后台(后端)的数据变化(图片)实时更新到前端?
- 产品经理与交互设计师的区别是什么?
- 玩转oracle 11g(9):crud操作(亲测)
- 10个高效Linux技巧及Vim命令对比
- activity 生命周期_Activity 源码解析
- 无需私钥的pssh的安装使用
- 光学软件市场现状研究分析报告-
- 更改Windows的鼠标滚动方式为Mac方式(win鼠标滚轮反向)
- matlab 跳步,给定两个大整数u和v,它们分别有m和n位数字,且m≤n.用通常的乘法求uv的值需要O(mn)时间.可以将u和v.. - 上学吧找答案(手机版)...
- 海康摄像机RTSP连接Opencv读取视频
- 2018CCPC吉林赛区 hdu6555~hdu6566
- javawe(ckeditorsmartupload)
- 【图解算法面试】记一次面试:说说游戏中的敏感词过滤是如何实现的?
- 如何使用MATLAB将两张或者多张figure图形合并到一个figure图形里进行对比
热门文章
- HDU - 1847 Good Luck in CET-4 Everybody!(sg函数,水题)
- FZU - 2202 犯罪嫌疑人(逻辑思维+简单模拟)
- UVA211 TheDomino Effect 多米诺效应
- HDU3966(树链剖分)
- (四)boost库之正则表达式regex
- ADO学习(九)如何阅读ADO文档
- Redis 特殊数据类型 :Geospatial、Hyperloglog、Bitmap
- 浅谈tcp的三次握手和四次挥手的理解
- 经典|Linux:为什么性能工具需要 BPF 技术(送多本)
- 最棒 Spring Boot 干货总结