我正在使用CodingBat进行Python语言的练习练习,我接受了“Warmup-1> missing_char”练习。问题是如此:
给定一个非空字符串和一个int n,返回一个新的字符串 索引n处的char已被删除。 n的值将是有效索引 原始字符串中的字符串(即n将在该范围内) 0..len(str)-1包含)。
例子是:
missing_char('kitten',1)→'ktten'
missing_char('kitten',0)→'itten'
missing_char('kitten',4)→'kittn'
我写道:
def missing_char(str, n):
return str.replace(str[n], "")
它返回所有正确的。正如我通常所做的那样,当我得到正确的答案时,我会看看CodingBat如何回答它。他们用以下方式回答:
def missing_char(str, n):
front = str[:n] # up to but not including n
back = str[n+1:] # n+1 through end of string
return front + back
现在,我的问题如下:哪个答案更可行?我的方法有挫折,而CodingBat的方法更稳固吗?或者这只是那种“多种方法”的情况之一?
答案 0 :(得分:1)
为了发布正式答案,以及之前的评论建议:
str.replace(char,"")
将删除角色的所有出现,无论其位置如何。
str[:n]+str[n+1:]
只会删除第n个字符。
因此,练习str.replace(char,"")
不合适。