我試圖得到兩個字符串之間的全局序列對齊。但它給了我一個錯誤的答案。 我的方法如下生成評分矩陣。如何構建全局序列比對的評分矩陣?
public void makeScoringMatrix(String v,String w)
{
int ar[][]=new int[v.length()+1][w.length()+1];
for(int i=v.length()-1;i>=0;i--)
{
for(int j=w.length()-1;j>=0;j--)
{
if(v.charAt(i)==w.charAt(j))
ar[i][j]=ar[i+1][j+1]+1;
else if(v.charAt(i)!=w.charAt(j))
ar[i][j]=ar[i+1][j+1]+0;
else
ar[i][j]=Math.max(ar[i][j+1],Math.max(ar[i+1][j],ar[i+1][j+1]));
}
}
//printArray(ar);
getGlobalAlignment(ar,v,w);
}
public void getGlobalAlignment(int ar[][],String v,String w)
{
int i=0,j=0,index=0;
while(i<v.length() && j<w.length())
{
if(v.charAt(i)==w.charAt(j))
{
System.out.print(v.charAt(i));
i++;
j++;
index++;
}
else if(ar[i+1][j]>ar[i][j+1])
{
i++;
}
else
{
j++;
}
}
}
有人請幫幫我...!
的代碼是什麼'getGlobalAlignment'(你怎麼知道的錯誤,不是嗎?)你能舉出一個錯誤答案的輸入和輸出例子嗎?否則,幾乎不可能找到該錯誤。 –
點擊編輯並將其放入您的問題。 –
我已將它添加到代碼中。 –