问题描述
我试图在没有任何内置功能的情况下进行anagram checker。到目前为止,我已经做到了:
def isa1(s1,s2):
a = s1.lower()
b = s2.lower()
c = list(a)
d = list(b)
l = len(s1)
counter = 0
for i in range(l):
if c[i] == d[0]:
del d[0]
counter += 1
elif c[i] == d[1]:
del d[1]
counter += 1
elif c[i] == d[2]:
del d[2]
counter += 1
elif c[i] == d[3]:
del d[3]
counter += 1
elif c[i] == d[4]:
del d[4]
counter += 1
elif c[i] == d[5]:
del d[5]
counter += 1
else:
pass
if counter == len(s1):
return True
else:
return False
我对开始感到满意,禁止分配命名,但是我想不出如何遍历第二个字符串s2而不会使for循环变得可笑。另外,此代码仅适用于长度为6个字符的字符串/列表。
对不起,如果这看起来很简单,我只是在开始Python和一般编程 谢谢!
解决方法
如果可以在for中使用for,可以这样做:
?type=downvote
此解决方案将检查第二个列表中的每个字母,如果找到匹配项,则会中断进入下一个字母的内循环。