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

力扣:205. 同构字符串(Python3)

题目:

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

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

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

来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

示例:

示例 1:

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


示例 2:

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


示例 3:

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

解法:

依次将字符串映射到数字。数字从1开始编号,第1个出现的字符标1,第2个出现的字符标2,以此类推,如果已出现过,就用之前的标号。

代码:

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        def exchange(s):
            count = 1
            d = dict()
            ret = ''
            for letter in s:
                if letter not in d:
                    d[letter] = str(count)
                    count += 1
                ret += d[letter]
            return ret
        return exchange(s) == exchange(t)

相关文章:

  • 设计模式之-装饰模式,快速掌握装饰模式,通俗易懂的讲解装饰模式以及它的使用场景
  • webpack 常见面试题
  • 使用 Taro 开发鸿蒙原生应用 —— 探秘适配鸿蒙 ArkTS 的工作原理
  • 计算机网络 网络安全技术
  • 解决java在idea运行正常,但是打成jar包后中文乱码问题
  • 51单片机基于时间片轮转的简单rtos
  • 【SpringBoot篇】解决缓存击穿问题① — 基于互斥锁方式
  • 开发语言:ArkTS
  • Redis基础篇-003 Redis数据结构及常用命令
  • Netty RPC 实现(二)
  • beaglebone black狗板,交叉编译Qt5(eglfs)
  • IntelliJ IDE 插件开发 | (三)消息通知与事件监听
  • UE5 Landscape 制作GIS卫星图地形
  • 在使用mapstruct,想忽略掉List<DTO>字段里面的,`data` 字段的映射, 如何写ignore: 使用@IterableMapping
  • 自定义Taro上传图片hooks(useUploadImg)
  • 让生活更智能,P1600边缘智能网关带你进入智能家居新时代
  • C#学习笔记 - C#基础知识 - C#从入门到放弃 - C# 结构、类与属性
  • 【起草】【第六章】ChatGPT 在软件测试的应用场景
  • 物联网主机E6000:引领智能安防新时代
  • display:grid
  • 招商蛇口:今年前4个月销售额约498.34亿元
  • 理财经理泄露客户信息案进展:湖南省检受理申诉,证监会交由地方监管局办理
  • 央行谈MLF:逐步退出政策利率属性回归流动性投放工具
  • “80后”计算机专家唐金辉已任南京林业大学副校长
  • 复旦设立新文科发展基金,校友曹国伟、王长田联合捐赠1亿助力人文学科与社会科学创新
  • 美联储宣布维持基准利率不变