このコードはオンラインですが、どのように動作しているかわかりません。文字列の重複を削除する-Python
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")
このコードはオンラインですが、どのように動作しているかわかりません。文字列の重複を削除する-Python
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")
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")
重複文字を除去しながら機能は基本的に入力string
から新しい文字列を作成している:私は、
if ans_str.find(s) == -1:
ans_str += s
完全なコードの行の下に何をするか理解することはできませんよ。
ans_string
は最初は最初の文字から始まります。この場合、最初の文字はa
です。機能の主要部分で
見てみましょう:これは我々がans_str
でその文字を探しstring
のすべての文字のために、である何
for s in string:
if ans_str.find(s) == -1:
ans_str += s
。これはans_str.find(s)
を使用して行います。文字がすでに文字列に存在する場合は、それが存在するインデックスを返します。それ以外の場合は-1を返します。したがって、-1を返すと、s
に割り当てられた文字がans_str
に存在せず、安全にans_str
に追加できることを意味します。そうでなければ、その文字は無視されます。
この関数は、入力aabbacc
にabc
を返します。