
LeetCode刷题记录--No.205-同构字符串
发布日期:2021-05-06 19:33:09
浏览次数:20
分类:技术文章
本文共 1238 字,大约阅读时间需要 4 分钟。
为啥突然蹦到了这道题呢,本来想休息了,但是每日题目刷新了百城了这个,看了一眼 好像可以用刚刚学到的map去解,忍不住去试了一下 还真可以,明天再研究最优解
题目:
给定两个字符串 s 和 t,判断它们是否是同构的。
如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。 所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。 示例 1: 输入: s = “egg”, t = “add” 输出: true 示例 2: 输入: s = “foo”, t = “bar” 输出: false 示例 3: 输入: s = “paper”, t = “title” 输出: true 说明: 你可以假设 s 和 t 具有相同的长度。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/isomorphic-strings
解题思路:
两个问题
第一个 key == value 前一个字符串的每个固定key必须等于后一个的v固定value。所以直接想到了map 第二个问题 前一个字符串中没有出现的key 但是后一个的value出现过了 肯定也是不行的 我总觉得我的这些代码还可以优化 但是没想好怎么优化
public boolean isIsomorphic(String s, String t) { Mapmap = new HashMap<>(); char[] chars1 = s.toCharArray(); char[] chars2 = t.toCharArray(); for(int i = 0; i < chars1.length; i++) { Character c1 = chars1[i]; Character c2 = chars2[i]; Character character = map.get(c1); if (character != null && !character.equals(new Character(c2))) { return false; } if (character == null && map.values().contains(c2)) { return false; } map.put(c1, c2); } return true; }
由于是一拍脑门想到的方法 所以肯定不是最优解
找到了再更新
发表评论
最新留言
逛到本站,mark一下
[***.202.152.39]2025年03月13日 06时51分42秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
动态摇动吊牌自适应网站404页面源码
2019-03-03
炫酷文字消失动画网站404页面源码
2019-03-03
EMLOG模板山河网站主题分享
2019-03-03
2019数字音乐市场年度回顾,QQ音乐全面领先
2019-03-03
花1亿扶持优质红人,如涵推动网红经济出圈之路有何深意?
2019-03-03
抢滩抖音、B站,快手港股IPO进程加速
2019-03-03
Linux中的虚拟内存机制和内存映射
2019-03-03
Android系统启动系列5 SystemServer进程下
2019-03-03
Android四大组件系列9 ContentProvider原理
2019-03-03
理解PendingIntent
2019-03-03
Android SurfaceFlinger4 提交Buffer
2019-03-03
深入理解 ClientLifecycleManager 机制
2019-03-03
android基础知识回顾--ContentProvider简单用法
2019-03-03
压缩解压
2019-03-03
js try{}catch(){}finally{}语句
2019-03-03
R3 PRO 3200G和r7 3700u 哪个好
2019-03-03
入手评测 联想小新Pro14和Air14Plus哪个好?区别对比
2019-03-03