while循环检查python中的字谜
Posted
技术标签:
【中文标题】while循环检查python中的字谜【英文标题】:while loop to check anagrams in python 【发布时间】:2017-05-19 05:44:03 【问题描述】:我有以下练习: 如果您可以重新排列一个字母以拼写另一个单词,则两个单词是字谜。 编写一个名为 is_anagram 的函数,它接受两个字符串,如果它们是字谜,则返回 True。
我开发了一个功能,但它不能正常工作,我不知道为什么。谁能告诉我我做错了什么?非常感谢。
def isa(s,t):
if len(s)!=len(t):
print "impossible"
if len(s)==len(t):
i=0
while i<len(s)-1:
for i in s:
if i in t:
print "yay"
print "NO"
【问题讨论】:
你似乎没有增加i
,这是在你的while-loop
的条件下使用的。另外,我对while
和for
循环的组合感到困惑。只需for-loop
就足够了。
试试def isa(t,s): return sorted(t)==sorted(s)
。这会将字符串以相同的顺序排列,然后进行比较。
非常感谢,阿卜杜。我已经消除了 while 循环并应用了一些更改。现在它起作用了。再次感谢您。
【参考方案1】:
import collections
def is_anagram(s,t):
return collections.Counter(s) == collections.Counter(t)
【讨论】:
感谢您的及时回答,但不是我要找的。我想调试我用while循环开发的结构并理解我的错误 @Ajla 你最好的办法就是继续破解它......总是以上是关于while循环检查python中的字谜的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Python 中的另一个 while 循环中正确地创建一个 while 循环?