System.out.printf("%2d| %s\n", i, corpus.toString(suffix, ""));
}
}
private void printIntervalSuffixes(Interval interval, int windowSize) {
IntSequence indices = interval.indices();
int lcp = interval.lcp();
int[] suffixTable = lst.getSuffixTable();
int[] inverseSuffixTable = lst.getInverseSuffixTable();
SortedMap<Integer, Integer> embeddedSuffixTableIndices = new TreeMap<Integer, Integer>();
for (int i = 0; i < interval.size(); i++) {
int start = indices.get(i) + lcp;
for (int j = start; j < start + windowSize && j < sequence.size(); j++) {
IntSequence suffix = sequence.subSequence(j, sequence.size());
Integer startIndex = embeddedSuffixTableIndices.get(inverseSuffixTable[j]);
if (startIndex == null || startIndex < start) {
embeddedSuffixTableIndices.put(inverseSuffixTable[j], start);
System.out.printf("%2d:%2d| %s+\n", start, j, corpus.toString(suffix, ""));
} else {
System.out.printf("%2d:%2d| %s-\n", start, j, corpus.toString(suffix, ""));
}
}
}
System.out.println("Chosen Suffixes:");
for (Entry<Integer, Integer> entry : embeddedSuffixTableIndices.entrySet()) {
IntSequence suffix = sequence.subSequence(suffixTable[entry.getKey()], sequence.size());
IntSequence filler = sequence.subSequence(entry.getValue(), suffixTable[entry.getKey()]);
System.out.printf("%2d:%2d| %s {%s}\n", entry.getValue(), suffixTable[entry.getKey()],
corpus.toString(suffix, ""), corpus.toString(filler, ""));
}
}