美文网首页
49同构字符串

49同构字符串

作者: Jachin111 | 来源:发表于2020-08-31 12:58 被阅读0次

给定两个字符串 s 和 t,判断它们是否是同构的。
如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。
所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。

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

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

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

说明:
你可以假设 s 和 t 具有相同的长度。

str 类型数据拥有内置函数 index,输入一个子字符串,可以返回子字符串在 str 中第一次出现的索引,若不存在则报错
map(函数,可迭代对象) 将会对(参数2:可迭代对象)中的每个元素运用(参数1:函数)并将结果按顺序储存在一个迭代器中,返回这个迭代器
使用 [……] 可对对象解包,本题中 [map……] 等效于 list(map……)

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        return [*map(s.index, s)] == [*map(t.index, t)]

哈希表

class Solution:
    def isIsomorphic(self, s: str, t: str) -> bool:
        hashmap={}
        for i,j in zip(s,t):
            if i in hashmap and hashmap[i]!=j:
                return False
            elif i not in hashmap and j in hashmap.values():
                return False
            hashmap[i]=j
        return True

比较特征值
特征值: 每个字符都有一个各不相同的代号, 这些代号按照字符串中字符的顺序排列组成了特征值
初始特征值为"", 字典L初始值为空
若字符串不为空, 则将第一个字符的代号设为"1"接到特征值末尾并加入字典
往后每遇到一个字符, 若其在字典里, 取出对应代号并接到特征值末尾, 若不在, "代号+1"接到特征值末尾并加入字典
比如对于字符串"apple", 其特征值为"12234"

class Solution:
    def eigenValues(self, x):#返回一个字符串的特征值
        L, p, k = {}, 0, ''
        for i in x:
            if i not in L:
                p += 1
                k, L[i] = k+str(p), str(p)
            k += L[i]
        return k
    def isIsomorphic(self, s, t):
        return self.eigenValues(s) == self.eigenValues(t)

来源:力扣(LeetCode)

相关文章

  • 49同构字符串

    给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的...

  • 同构字符串

    题目 难度级别:简单 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,...

  • 同构字符串

    给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构...

  • 字符串的最小表示法

    字符串的循环同构:设S=bcad,且S’是S的循环同构的串。S’可以是bcad或者cadb,adbc,dbca。而...

  • 2019-11-15 同构字符串

    给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构...

  • 638. 字符同构

    给定两个字符串 s 和 t ,确定它们是否是同构的。两个字符串是同构的如果 s 中的字符可以被替换得到 t。所有出...

  • T205、同构的字符串

    给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的...

  • 8.23刷题题解代码

    202 快乐数 205 同构字符串 思路总结:第1种,把字符串转换成了数组,通过比较数组是否相等来判断字符串是否同...

  • 数据结构与算法-同构字符串205(java)

    tags: 字符串categories: 数据结构与算法 题目:给定两个字符串 s 和 t,判断它们是否是同构的。...

  • 205. 同构字符串

    内容 给定两个字符串 s 和 t,判断它们是否是同构的。 如果 s 中的字符可以被替换得到 t ,那么这两个字符串...

网友评论

      本文标题:49同构字符串

      本文链接:https://www.haomeiwen.com/subject/veyusktx.html