2013-03-23 84 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