程序检查一个字符串是否可以一对一映射到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