Given two strings str1 and str2 of the same length, determine whether you can transform str1 into str2 by doing zero or more conversions.
In one conversion you can convert all occurrences of one character in str1 to any other lowercase English character.
Return true if and only if you can transform str1 into str2.
Example 1:
Input: str1 = "aabcc", str2 = "ccdee"
Output: true
Explanation: Convert 'c' to 'e' then 'b' to 'd' then 'a' to 'c'. Note that the order of conversions matter.
Example 2:
Input: str1 = "leetcode", str2 = "codeleet"
Output: false
Explanation: There is no way to transform str1 to str2.
Note:
1 <= str1.length == str2.length <= 10^4- Both
str1andstr2contain only lowercase English letters.
--------------------------------------------------------------------
思路不难,但是不容易写对,坑就是需要一个没有被占用的字母
class Solution:
def canConvert(self, str1: str, str2: str) -> bool:
dic = {}
if (str1 == str2):
return True
l = len(str1)
for i in range(l):
if (str1[i] != str2[i]):
if str1[i] in dic and dic[str1[i]] != str2[i]:
return False
else:
dic[str1[i]] = str2[i]
# bug1: return True if len(dic) < 26 or len(set(dic.values())) < 26 else False
return len(set(str2)) < 26
字符串转换挑战

探讨如何通过字符替换将一个字符串转换为另一个相同长度的字符串,分享实现思路与代码案例。
1446

被折叠的 条评论
为什么被折叠?



