文字列を受け取り、その文字列内のすべての文字をあらゆる方法で置き換える関数のヘルプを探しています。私の質問をどのように表現すればよいのかよくわからないので、それが何をすべきかをお見せします。
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に変換できると思います。