D106python练习20221118

'''
习题1、判断同构字符串
给定两个字符串 s 和 t,判断它们是否是同构的。
如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。
每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序。不同字符不能映射到同一个字符上,相同字符只能映射到同一个字符上,字符可以映射到自己本身。
示例 1:
输入:s = "egg", t = "add"
输出:true
示例 2:
输入:s = "foo", t = "bar"
输出:false
示例 3:
输入:s = "paper", t = "title"
输出:true

遍历每一个s的字母,把对应到t的字母存到字典中
情况1:字典中没有(两个列表的元素)对应关系,那么就存起来 s[i]-->key,t[i]-->value
情况2:字典中有对应关系,那么比对一下是否对应关系一致
'''

复制代码
def is_same_map_words(s,t):
    d = {}
    for i in range(len(s)):
        if s[i] not in d.keys():
            if t[i] in d.values():
                return False
            d[s[i]] = t[i]
    else:
        print(d[s[i]], t[i], d[s[i]] == t[i])
        if d[s[i]] != t[i]:
            return False

print(is_same_map_words("egg","add"))
print(is_same_map_words("foo","bar"))
print(is_same_map_words("paper","title"))
print(is_same_map_words("foo","foo"))
复制代码

 

【输出】

d d True
None

a r False
False

e e True
None
o o True

posted @   江湖中  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示