2016-05-10 11 views
0

このコードはオンラインですが、どのように動作しているかわかりません。文字列の重複を削除する-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") 

答えて

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") 
0

重複文字を除去しながら機能は基本的に入力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に追加できることを意味します。そうでなければ、その文字は無視されます。

この関数は、入力aabbaccabcを返します。

関連する問題