Finds the longest ordered (non-decreasing by default) subsequence of a list using an optional ordering predicate
LongestOrderedSequence[list]
LongestOrderedSequence[list, p]
LongestOrderedSequence["BAABCA"]
→ AABCLongestOrderedSequence[{"B", "A", "A", "C", "B", "C"}]
→ {A, A, B, C}LongestOrderedSequence[{"B", "A", "A", "C", "B", "C"}, OrderedQ[{#2, #1}]&]
→ {B, A, A}