算法有一个问题。
问题如下:-
给你一个由字符 A、B、C、D 组成的蛋白质字符串。你必须在其中找到一个最小长度的序列。
例子
0 1 2 3 4 5 6 7 8 9 10 11 12
A B A C D C A B C D C C D
String to find is : BCD
This string is find between (StartPoint, EndPoint)
1, 4
7, 9
1, 12
7, 12
Minimum length is of 7, 9.
So the answer is 7, 9
我的工作,
- 我们可以在 O(n^2) 中使用蛮力方法解决这个问题。
- 我们可以通过DP找到主字符串中出现的第一个序列,我的DP逻辑如下,
A = Main string B = String to be find DP = Dynamic programming function n = A.size, m = B.size Build an array of DP[m+1][n+1] DP[i][j], means If in A[0...i], B[0...j] is present or not. This way we can find our first occurence of B in A. Now after this, I am stuck.
我需要你这边的一些提示。
请只给我提示/指导,不需要代码或实现。