こんにちは、私はゲノム配列を読み取って、表示される 10 文字の繰り返しを検索しようとしています。私が考えている解決策は、次の 3 つのステップに分けられます。
- ゲノム配列を読む例: GAAAAATTTTCCCCCCACCCTTTTCCCC
- 文字列を連続する 10 個のシーケンスにカットします。たとえば、最初に新しく生成された文字列はインデックス 0 ~ 9 になり、次は 1 ~ 10、2 ~ 11、3 ~ 12... になります。
- これらのシーケンスを ArrayList に格納します
- 文字列を比較する
- 繰り返されるシーケンスとそれらが繰り返される頻度を返します。
私が抱えている問題は、古くて大きな文字列から新しい文字列を生成する方法です。たとえば、私のゲノム シーケンスが AAAAGGGGGAAAATTTCCCC の場合、最初の 10 文字のシーケンスは AAAAGGGGGA になり、次は AAAGGGGGAA になります。Javaでそれを行うにはどうすればよいですか?
これは私がこれまでに持っているものです:
import java.util.List;
import java.util.ArrayList;
public class Solution
{
public ArrayList<String> findRepeatedDnaSequences(String s)
{
ArrayList<String> sequence = new ArrayList<String>();
int matches;
ArrayList<String> matchedSequence = new ArrayList<String>();
for(int i = 0; i < s.length(); i++)
{
if (i + 9 > s.length())
{
sequence.add(s.substring(i, i + 9));
}
}
for(int i = 0; i < sequence.size(); i++)
{
matches = 0;
for (int j = 1; j < sequence.size(); j++)
{
if(sequence.get(i) == sequence.get(i))
{
matches++;
System.out.print(matches);
matchedSequence.add(sequence.get(i));
}
}
}
return matchedSequence;
}
}