急啊,leetcode205题同构字符串,和同窗赌博,说能用python写反击改95%的算法。后果写不出来。标题以下:
给定两个字符串 s 和 t,判别它们能否是同构的。
假如 s 中的字符可以被交换失掉 t ,那末这两个字符串是同构的。
一切呈现的字符都必需用另外一个字符交换,同时保存字符的次序。两个字符不克不及映照到统一个字符上,但字符可以映照本人自身。
示例 1:
输出: s ="egg",
t ="add"
输出: true
示例 2:
输出: s ="foo",
t ="bar"
输出: false
示例 3:
输出: s ="***",
t ="title"
输出: true
阐明:
你可以假定 s 和 t 具有类似的长度。
我用python写了两种办法,最高只能到52ms
if not len(s):
return True
d= {}
for i in range(len(s)):
if d.setdefault(s[i], t[i]) != t[i]:
return False
if len(d.values())>len(set(d.values())):
return False
return True
if not len(s):
return True
d= {}
for i in range(len(s)):
if s[i] not in d.keys() and t[i] in d.values()
or d.setdefault(s[i], t[i]) != t[i]:
return False
return True
自己太菜了想不到怎样优化了,请大佬帮助优化下延长工夫,不甚感谢~
2KB项目(www.2kb.com,源码交易平台),提供担保交易、源码交易、虚拟商品、在家创业、在线创业、任务交易、网站设计、软件设计、网络兼职、站长交易、域名交易、链接买卖、网站交易、广告买卖、站长培训、建站美工等服务