我正在寻找一个函数的帮助,该函数接受一个字符串,并以各种方式替换该字符串中的每个字符。我不太确定如何表达我的问题以使其有意义,因此我将向您展示它应该做什么。
stars('1')
returns ['*']
stars('12')
returns ['*1', '1*', '**']
stars('123')
returns ['*23', '1*3', '12*', '**3', '*2*', '**1', '***']
stars('1234')
returns ['*234', '1*34', '12*4', '123*', '**34', '*2*4', '*23*', '1**4', '1*3*',
'12**', '***4', '**3*', '*2**', '1***', '****']
这一切都是手工完成的,但即使我犯了一个错误,你也应该知道我现在在寻找什么。最后一个案例(所有 * 的)不是必需的,但我把它放在那里以确保问题被理解。
到目前为止,这是我想出的,但它并不完全奏效。
def stars(n):
lst = []
length = len(n)
for j in xrange(0, length):
p = list(n)
for k in xrange(j, length):
p[k] = '*'
lst += [''.join(p)]
return lst
输出:
'1' returns ['*']
'12' returns ['*2', '**', '1*']
'123' returns ['*23', '**3', '***', '1*3', '1**', '12*']
'1234' returns ['*234', '**34', '***4', '****', '1*34', '1**4', '1***', '12*4', '12**', '123*']
任何帮助将不胜感激。如果可能的话,希望用 Python 回答这个问题,但如果您不了解 Python,那么伪代码或其他语言也是可以接受的。如果写得很清楚,我相信我可以自己将它转换成 Python。