首页 > 其他分享 >205 同构字符串

205 同构字符串

时间:2023-01-03 09:55:26浏览次数:55  
标签:字符 同构 dict1 映射 dict2 return 字符串 205

题目 205 同构字符串

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

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

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

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

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

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

思路

  • 首先通过映射可以确定的是用哈希表数据结构
  • 循环s,存到dict1里(键为s,值为t),判断s中字符是否已存在,若存在判断已存的值是否和t中的字符相等
  • 同上,循环t
    注意:逻辑比较复杂,但是想明白了就很简单,一看代码就懂了

代码

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        dict1 = {}
        dict2 = {}
        if len(s) != len(t): return False
        for i in range(len(s)):
            if s[i] not in dict1:
                dict1[s[i]] = t[i]
            else:
                if dict1[s[i]] == t[i]:
                    continue
                else:
                    return False
        for i in range(len(t)):
            if t[i] not in dict2:
                dict2[t[i]] = s[i]
            else:
                if dict2[t[i]] == s[i]:
                    continue
                else:
                    return False
        return True

标签:字符,同构,dict1,映射,dict2,return,字符串,205
From: https://www.cnblogs.com/edkong/p/17021138.html

相关文章

  • Python模块之dedent 删除字符串中的前导空格
    作用:删除字符串中的前导空格必要操作:>>>fromtextwrapimportdedent 帮助查看:>>>help(dedent)方法(函数):fromtextwrapimportdedenttext="""......
  • leetcode-606. 根据二叉树创建字符串
    606.根据二叉树创建字符串-力扣(Leetcode)前序遍历/***Definitionforabinarytreenode.*typeTreeNodestruct{*Valint*Left*TreeNode*......
  • Java 中基本类型和字符串之间的转换-2023-1-2
    在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。其中,基本类型转换为字符串有三种方法:1.使用包装类的toString()方法2.使用String类的valueOf()......
  • 程序:用递归法计算字符串长度
    #include<stdio.h>intmy_strlen(char*str){if(*str!='\0')return1+my_strlen(str+1);elsereturn0;}intmain(){intret=0;chararr[]="hibi......
  • acwing.1205 买不到的数目
    acwing.1205买不到的数目小明开了一家糖果店。他别出心裁:把水果糖包成4颗一包和7颗一包的两种。糖果不能拆包卖。小朋友来买糖的时候,他就用这两种包装来组合。......
  • 力扣1047 删除字符串中的所有相邻重复项
    题目:给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。在S上反复执行重复项删除操作,直到无法继续删除。在完成所有重复项删除操......
  • 15、前端基础--ES6---结构&字符串扩展
    一、数组解构二、对象解构三、字符串扩展1、几个新的api2、字符串模板模板字符串相当于加强版的字符串,用反引号`,除了作为普通字符串,还可以用来定义多行字符串,还......
  • 【排序贪心】【字符串】LeetCode 179. 最大数
    题目链接179.最大数思路转自宫水三叶大佬的题解对于nums中的任意两个值a和b,我们无法直接从常规角度上确定其大小/先后关系。但我们可以根据「结果」来决定a和......
  • KMP字符串模式匹配详解
    KMP字符串模式匹配详解KMP字符串模式匹配通俗点说就是一种在一个字符串中定位另一个串的高效算法。简单匹配算法的时间复杂度为O(m*n);KMP匹配算法。可以证明它的时间复杂度......
  • 【小5聊】基础算法 - 实现字符串1到N位长度的组合关键词
    在本篇文章中,我们讲一起了解下基础算法的运用在程序开发里,算法无处不在,掌握算法才能更好的提高程序效率和质量 【算法返回效果】 【实现的功能描述】当前算法主要实现输......