2017-03-16 55 views
0

編寫一個名爲remove_duplicates的函數,它將接受一個名爲string的參數。該字符串輸入將只包含a-z之間的字符。在python中編寫函數remove_duplicates

功能應該刪除所有重複的字符字符串中,並用兩個值返回一個元組:

的新字符串只有獨特的,分類的字符。

刪除重複項的總數。

例如:

remove_duplicates('aaabbbac') => ('abc', 5) 

remove_duplicates('a') => ('a', 0) 

remove_duplicates('thelexash') => ('aehlstx', 2) 

這裏是我的解決方案,我是新來的Python:

string = raw_input("Please enter a string...") 

def remove_duplicates(string): 
    string = set(string) 
    if only_letters(string): 
    return (string, string.length) 
    else: 
    print "Please provide only alphabets" 

remove_duplicates(string) 

什麼可能我被錯誤地做什麼?這是我得到以下

有錯誤/ BUG在你的代碼 結果錯誤: /bin/sh的:1:蟒蛇/ nose2 /斌/ nose2:找不到

感謝。

+2

這聽起來像是在驗證支架的錯誤,而不是你的代碼。 –

+1

我想如果代碼無效,測試部分可能會以模糊的方式失敗Python:它是'len(string)'而不是'string.length'。在發送提交內容之前,您應該先在本地進行測試以查看此類錯誤。 – polku

+0

請參閱http://stackoverflow.com/questions/9841303/removing-duplicate-characters-from-a-string。在你的代碼中你沒有定義「only_letters」 – manvi77

回答

0

由於順序並不重要,你可以使用

string = raw_input("Please enter a string...") 

def remove_duplicates(string): 
    new_string = "".join(set(string)) 
    if new_string: 
    return (new_string, len(string)-len(new_string)) 
    else: 
    print "Please provide only alphabets" 

remove_duplicates(string) 

Please enter a string...aaabbbac 
Out[27]: ('acb', 5) 

集()將創建一組串中不同的字母,而「」。加入()將加入信回字符串以任意順序。

0

是從測試我的工作收到了同樣的錯誤,我覺得錯誤是不是從你的結束,但測試人員的最終

2

這一切正常。輸出應該排序。

def remove_duplicates(string): 
    new_string = "".join(sorted(set(string))) 
    if new_string: 
    return (new_string, len(string)-len(new_string)) 
    else: 
    print "Please provide only alphabets" 

無需包括此:

string = raw_input("Please enter a string...") 

remove_duplicates(string)