|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--com.mhhe.clrs2e.LongestCommonSubsequence
Implements the dynamic-programming algorithm to find a longest common subsequence of two strings, as described in Section 15.4 of Introduction to Algorithms, Second edition.
| Nested Class Summary | |
private static class |
LongestCommonSubsequence.Direction
Inner class for a typesafe enum pattern for directions in a two-dimensional array. |
| Field Summary | |
private LongestCommonSubsequence.Direction[][] |
b
The table entry used in constructing an LCS of prefixes Xi and Yj, for 0 ≤ i ≤ m-1 and 0 ≤ j ≤ n-1. |
private int[][] |
c
The length of an LCS of a subproblem. |
private static LongestCommonSubsequence.Direction |
LEFT
|
private int |
m
How many entries are in X. |
private int |
n
How many entries are in Y. |
private static LongestCommonSubsequence.Direction |
UP
|
private static LongestCommonSubsequence.Direction |
UP_AND_LEFT
|
private java.lang.String |
x
The input X. |
| Constructor Summary | |
LongestCommonSubsequence(java.lang.String x,
java.lang.String y)
Computes an LCS of two strings, allocating the instance variables and storing the result in them. |
|
| Method Summary | |
private char |
index(java.lang.String z,
int k)
Returns a given character from a String. |
private void |
lcsLength(java.lang.String x,
java.lang.String y)
Computes an LCS of two strings, storing the result in the instance variables. |
private java.lang.String |
printLCS(int i,
int j)
Returns an LCS of prefixes Xi and Yj. |
java.lang.String |
toString()
Returns an LCS of X and Y as a String. |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
private static final LongestCommonSubsequence.Direction UP
private static final LongestCommonSubsequence.Direction LEFT
private static final LongestCommonSubsequence.Direction UP_AND_LEFT
private int[][] c
c[i][j] is
the length of an LCS of prefixes Xi
and Yj, for 0 ≤ i
≤ m-1 and 0 ≤ j ≤
n-1.
private LongestCommonSubsequence.Direction[][] b
private final int m
private final int n
private final java.lang.String x
| Constructor Detail |
public LongestCommonSubsequence(java.lang.String x,
java.lang.String y)
x - The string X.y - The string Y.| Method Detail |
private void lcsLength(java.lang.String x,
java.lang.String y)
x - The string X.y - The string Y.
private char index(java.lang.String z,
int k)
String.
Compensates for character positions in a String
being indexed from 0, rather than from 1 as in Section 15.4.
z - A String.k - An index into z, but starting from 1.
kth character of
z.
private java.lang.String printLCS(int i,
int j)
i - Index into X.j - Index into Y.
String that is an LCS of
Xi and Yj.public java.lang.String toString()
String.
toString in class java.lang.Object
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||