文字列が与えられた場合、そのシーケンス内の特定の長さのすべての回文のインデックスを見つけて、回文の長さの横にそのインデックスを出力する必要があります。
たとえば、4 文字の長さの回文が必要な場合:
seq = 'abbacdefggfhijkkjlmn'
最適な読み取り値は次のようになります。
[(0,4), (7,4), (13,4)]
これを行う関数を作成しましたが、問題があります。正しいデータ セットが返されますが、シーケンスの長さと同じ回数、何度も返されます。たとえば、上記のシーケンスでは、データ セットが 20 回返されます。
def find_palindromes(seq,y):
L = len(seq)
res = []
for x in seq:
x=0
while x<= L-y:
if seq[x:x+y] == reverse(seq[x:x+y]):
res.append((x,y))
x=x+1
return res
私のグリッチに関する洞察は本当にありがたいです。これが最も効率的な方法ではないことはわかっていますが、私は信じられないほど新しいので、足を濡らそうとしています。