題目:
lect6 序列匹配
**:方法一——普通二維陣列序列匹配+開陣列回溯:
方法二——開兩個陣列線性空間找,加遞迴回溯找對齊分割點:int maxscore(string word1,string word2,int*& r)
for (int j = 0; j <= len2; j++)
for (int i = 1; i <= len1; i++)
else tl = temp[i - 1][j - 1] - 1;
l = temp[i][j - 1] -3;
t = temp[i - 1][j] -3;
res = tl > l ? tl : l;
res = res > t ? res : t;
temp[i][j] = res;
} }int m = len1, n = len2,tpt=temp[len1][len2];
for (int i = len2-1; i >= 0; i--)
if (n1 > n2&&n1 > n3)
else if (n2 > n3)
else
} return temp[len1][len2];
}int main() ;
string s1 = "ocurrance",s2="occurrence";
int* r = null;
int res = maxscore(s1, s2,r);
return 0;
}
int prefix_alignment(string word1,string word2,int* score)
for (int m = 0; m <= len1; m++)
} return score[len1];
}int suffix_alignment(string word1, string word2, int* score)
for (int i = len2-1; i >= 0; i--)
for (int j = len1; j >= 0; j--)
} return score[0];
}int backtrack(string word1,string word2,int& index)
} return res;
}
方格迷宮(矩陣加回溯)
問題 j 方格迷宮 題目描述 設有乙個 n n 2 n 10 方格的迷宮,入口和出口分別在左上角和右上角。迷宮格仔中分別放0和 1,0表示可通,1表示不能,入口和出口處肯定是 0。迷宮走的規則如下所示 即從某點開始,有八個方向可走,前進方格中數字為 0時表示可通過,為 1時表示不可通過,要另找路徑。...
用深搜加回溯來實現求解數獨的所有解
1.對於當前的數獨狀態,我們可以把每個未填的位置的候選數字全部找出來,可以將候選數字放到乙個陣列或在vector中 vector find int x,int y 找出soudu x y 的候選數字2.如果有一些未填位置的候選數字為乙個,那麼這個就是確定項,我們可以先確定填補這個位置,如果所有的未填...
正則例項 回溯匹配html標籤
首先構造乙個html文字 let str 然後去除首位的 let str let pat let res str.match pat 1 console.log res 眾所周知,匹配,不能 let pat let res str.match pat 1 let pat1 hh 1 6 hh 1 c...