def lrs(self, s): N = len(s) # Form suffix strings suffixes = [''] * N for i in range(0, N): suffixes[i] = s[i:N] # Next sort the suffix strings sorter = MergeSort() sorter.sort_helper(suffixes) # Find longest LCP among adjacent entries lrs = '' for i in range(0, N - 1): x = self.lcp(suffixes[i], suffixes[i + 1]) if len(x) > len(lrs): lrs = x return lrs
from merge_sort import MergeSort if __name__ == '__main__': # search_tokens = [1, 3, -4, -8, 10] search_tokens = [9, 0, 8, 6, 1, 2, 3, 5, 4] # search_tokens = ['john', 'anna', 'mark', 'angela', 'james'] print "ORIGINAL:", print search_tokens sorter = MergeSort() sorter.sort_helper(search_tokens) print "SORTED:", print search_tokens