この回答に基づいて、この課題の解決策を書きました。指定された例のケースは正常に処理されますが、実際のケースは処理されません。
チャレンジ:
s
2 つの文字列とが与えられた場合t
、t
は の部分文字列です(結果として、は に連続したシンボルのコレクションとして含まれている必要があります)。s
t
s
t
s
文字列内の記号の位置は、それ自体を含め、その左側にある記号の総数です (たとえば、「AUGCUUCAGAAAGGUCUUACG」の「U」のすべての出現位置は、2、5、6、15、17、および 18 です)。 )。
i
の位置の記号s
は で示されs[i]
ます。の部分文字列は
s
として表すことができますs[j:k]
。ここで、j
とk
は の部分文字列の開始位置と終了位置を表しs
ます。たとえば、ifs = "AUGCUUCAGAAAGGUCUUACG"
、 thens[2:5] = "UGCU"
。部分文字列の位置
s[j:k]
はその開始位置j
です。の部分文字列として複数回出現する場合t
は、 に複数の場所があることに注意してください (以下のサンプルを参照)。s
s
与えられた:
2 つの DNA ストリング
s
およびt
(それぞれの長さが最大 1 kbp)。
戻る:
t
の部分文字列としての のすべての場所s
。
サンプル データセット:
GATATATGCATATACTT
ATAT
サンプル出力:
2 4 10
サンプルでは、動作します。確かに、手動で書式設定をトリミングする必要がありますが、それはほんの数秒の作業です。
実際のデータと生成された出力は受け入れられません。
実際のデータセット:
CAAATAGTCACACAATAGTCGGCTAAATAGTCAATAGTCAAATAGTCAGAGCTAATAGTCTAAATAGTCGAAAAATAGTCATCAATAGTCTAAATAGTCAATAGTCGGAATAGTCAAAATAGTCAATAGTCAATAGTCAATAGTCGACTAAATAGTCCCAATAGTCTCAGAAATAGTCAATAGTCGTAATAGTCAATAGTCTAATAGTCTAATAGTCCAATAGTCTGTCAAATAGTCAATAGTCCAATAGTCGTTTAATAGTCCCCTTTACCAATAGTCAATAGTCCGAATAGTCAGGAATAGTCAGCACTAATAGTCAATAGTCCTAATAGTCCCAATAGTCAAAATAGTCAATAGTCTAAATAATAGTCCTAGCAGAAGAATAGTCTAATAGTCGGCAATAGTCAATAGTCAAATAGTCAGAATAGTCAAATAGTCGAAATAGTCAATAGTCAATAGTCAAATAGTCAAATAGTCAATAGTCAAATAGTCAAATAGTCAAATAGTCGAATAGTCTGTAATAGTCAATAGTCCTTCAATAGTCTAATAGTCATTCAATAGTCAAGAAATAGTCGGGGGAATAGTCCGAATAGTCAAATAGTCAATAGTCGAATAGTCTAATAGTCAATAGTCTAATAGTCTGATAATAGTCAAATAGTCAATAGTCTAAATAGTCGCCTATGCCAATAGTCTTATCAAATAGTCTCTTAATAGTCTAATAGTCAATAGTCAATAGTCTAATAGTCATAATAGTCAATAGTCAAGGAATAGTCCCATAATAGTCAATAGTCTTAATAGTCCAAACGAAATAGTCTTAATAGTCCCTAATAGTCACTAATAGTCGTAATAGTCATAATAGTCCAATAGTCTAAATAGTCTGCAATAGTCAAATAGTCAAATAGTCCGTACAATAGTCTTAATAGTCTTTGCGGCTCAATAGTCTCATAATAGTC
AATAGTCAA
実際の出力 (トリミング):
26 33 93 109 118 125 132
コード:
def find_substring_locations(long, short)
mpos = []
re = Regexp.new(short)
m = i = 0
m = re.match( long, i ) { |k| j = k.begin(0); i = j + 1; mpos << j } while m
return mpos
end
def plus_one(input)
arr = []
for i in input
arr << (i += 1)
end
arr
end
main_string = gets.chomp
sub_string = gets.chomp
plus_one(find_substring_locations(main_string, sub_string))
どこで私は間違えましたか?順調のようです。
編集: 問題は環境の問題であることがわかりました。再起動後、問題を再現できませんでした。