程序检查一个字符串是否可以一对一映射到Python中的另一个字符串
假设我们有两个小写的字符串s,而t必须检查是否可以为s中的每个字母创建一个一对一映射到另一个字母(可能是相同的字母),以便s可以映射到t。(字符的顺序不会改变)。
因此,如果输入就像s =“ papa”,t =“ lili”,那么输出将为True,因为我们可以创建以下映射:“ p”到“ l”,“ a”->“ i”
为了解决这个问题,我们将遵循以下步骤-
s_dict:=新映射
t_dict:=新映射
对于范围在0到s大小和t大小最小值之间的i,执行
s_dict [s [i]]:= t [i]
t_dict [t [i]]:= s [i]
如果t_dict [t [i]]与s [i]不同,则
返回False
如果s_dict [s [i]]与t [i]不同,则
返回False
如果s_dict中存在s [i],则
否则,当t_dict中存在t [i]时,则
除此以外,
返回True
让我们看下面的实现以更好地理解-
示例
class Solution:def solve(self, s, t):
s_dict = {}
t_dict = {}
for i in range(min(len(s), len(t))):
if s[i] in s_dict:
if s_dict[s[i]] != t[i]:
return False
elif t[i] in t_dict:
if t_dict[t[i]] != s[i]:
return False
else:
s_dict[s[i]] = t[i]
t_dict[t[i]] = s[i]
return True
ob = Solution()print(ob.solve("papa", "lili"))
输入项
"papa", "lili"
输出结果
True
以上是 程序检查一个字符串是否可以一对一映射到Python中的另一个字符串 的全部内容, 来源链接: utcz.com/z/350325.html