题目
对于两个字符串A和B,如果A和B中出现的字符种类相同且每种字符出现的次数相同,则A和B互为变形词,请设计一个高效算法,检查两给定串是否互为变形词。
给定两个字符串A和B及他们的长度,请返回一个bool值,代表他们是否互为变形词。
测试样例:
“abc”,3,”bca”,3
返回:true
思路
用哈希,保存两个字典,存储字符个数,然后比较。
代码
class Transform:
def chkTransform(self, A, lena, B, lenb):
# write code here
dictA = {}
dictB = {}
for char in A:
if char in dictA:
dictA[char] += 1
else:
dictA[char] = 1
for char in B:
if char not in dictA:
return False
if char in dictB:
dictB[char] += 1
else:
dictB[char] = 1
if len(dictA) != len(dictB):
return False
for key in dictA.keys():
if dictA[key] != dictB[key]:
return False
return True