我在网上找到了这个代码,但不知道它是如何工作的。我无法理解下面的内容,
if ans_str.find(s) == -1:
ans_str += s
完整的代码:
def remove_dup(string):
ans_str = string[0]
for s in string:
if ans_str.find(s) == -1:
ans_str += s
return ans_str
print remove_dup("aabbacc")
答案 0 :(得分:0)
该功能基本上是从输入string
创建一个新字符串,同时删除重复的字符。
ans_string
最初只以第一个字符开头,在本例中为a
。
让我们看看函数的主要部分:
for s in string:
if ans_str.find(s) == -1:
ans_str += s
这是做什么的,对于string
中的每个角色,我们在ans_str
中寻找该角色。这是通过使用ans_str.find(s)
完成的。如果字符已经存在于字符串中,它将返回它所在的索引,否则它将返回-1。因此,如果它返回-1,则表示分配给s
的字符在ans_str
中不存在,我们可以安全地将其添加到ans_str
,否则我们会忽略该字符。
该函数应在输入abc
上返回aabbacc
。
答案 1 :(得分:0)
def remove_dup(string):
ans_str = string[0] # sets "ans_str" equal to the first character of string
for s in string: # loops through all of the characters in string
if ans_str.find(s) == -1:
# this checks if the current letter can be found in ans_strin
# if the current letter is found it will return 0 if not it returns -1
ans_str += s # this appends the current character to ans_str if ans_string.find() returns -1
return ans_str
print remove_dup("aabbacc")