【发布时间】:2013-12-07 19:53:39
【问题描述】:
非常感谢您关注这个问题。
我真的被一个特定的问题困住了,我将在下面发布问题:
定义一个函数partial anagram (str1, str2),如果每个字母都返回True
str1 中出现的次数至少与str2 中出现的次数相同,否则返回 False。
(注意:str2 中可能有其他字母不会出现在 str1 中,这就是为什么 str1 只是str2 的部分变位词。)[4 分]
提示:如果将str2 转换为列表,则可以循环遍历str1 中的字符,检查每个字符是否存在于str2 中。如果它不存在,则 str1 不能是 str2 的部分变位词(因此返回 False)。如果存在,则需要从列表中删除该字符(因为它已用完),然后继续循环。如果你循环遍历 str1 中的所有字符并且总是和 str2 中的匹配,那么你可以返回 True。
这是我的代码:
def partial_anagram(str1,str2):
str2_list = list(str2)
for char in str1:
if char in str2_list:
str2_list.remove(char)
return True
else:
return False
【问题讨论】:
-
为什么在 for 循环中有
return str2_list?您的要求说您应该只返回True或False。 -
这看起来是一个有趣的问题,但是这个函数的预期用途是什么?
标签: python python-3.x