#方針
本来であれば部分文字列は高々制約上56個までしか発生しないので、これを全探索すれば良いのですが、正規表現を用いた解法も無理ではなさそうと思い、やってみます。
#コード
入力例にある、'HATAGAYA'(この文字列に対する最長のACGT文字列は'ATAGA')を念頭に考えてみます:
Python
1import re 2 3name = 'HATAGAYA' 4li = [] 5for i in range(9): 6 li.append(re.search(r'[A.T.G.C]{i}', name)) 7 8print(li)
#出力
[None, None, None, None, None, None, None, None, None]
#考察・質問
おそらく{i}で指定したい部分文字列の長さを(ダブル)クオーテーションで囲ってしまっているが故、for i in range の i と {i} の i が対応していない為、Noneだらけのリストが返されているというところまでは考えられております。しかしながら、
li.append(re.search(r'[A.T.G.C]{0}', name)),
li.append(re.search(r'[A.T.G.C]{1}', name)),
li.append(re.search(r'[A.T.G.C]{2}', name)),...
とやっていくのは正直あまりにアホらしいので、何か方策を練りたいところなのですが、上のやり方でのfor文の使用が封印されてしまっている為、詰まっております。何か近いやり方での解決策は存在しますでしょうか。雑な質問とはなってしまいましたが、お力添え頂ける箇所がございましたら、ご教授のほどよろしくお願い申し上げます。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/04 15:36 編集
2021/05/04 15:16