2013-03-23 86 views
0

我的代碼刪除了一個字符串中的連續重複。我現在想要做的只是刪除特定的重複項。例如..修改代碼更具體?

my_func("killkiss","l") 
'kilkiss' 
my_func("killkiss","s") 
'killkis' 

我的代碼

def my_func(input,sub): 
newString = "" 
for char in input: 
    if newString == "" or char != newString[len(newString)-1]: #I've tried adding 'and is sub' 
     newString += char  
return newString 

是否有修改我的代碼的方法嗎?我需要這種做法,所以沒有從字符串庫或導入內置的插件。

+0

你能爲我們提供你可能有一個字符串的例子解析? – eandersson 2013-03-23 01:24:21

+0

當你調用一個函數時,你不會執行'def my_func(input1,input2,...)',你只需要調用它,就像這樣:'my_func(input1,input2,...)'。 – 2013-03-23 01:28:19

+0

好的,我改變了它。 – user2041448 2013-03-23 01:28:43

回答

1

我認爲你正在尋找:

if newString == "" or char != newString[len(newString)-1] or char != sub: 
2

對於連續的重複,你可以使用replace字符串的方法:

def my_func(input, sub): 
    result = input.replace(sub*2, sub) 
    if result == input: 
     return result 
    return my_func(result, sub) 
+0

OP的代碼將'aaa'變成'a'。你的把它變成'aa'。 – DSM 2013-03-23 01:29:11

+0

@DSM感謝您指出,現在與遞歸調用這個案件應該被覆蓋。 – 2013-03-23 01:36:47