LeetCode Data Structure stack 901 Algorithm LCS (Longest Common Subsequence) 1143 C++ Function next_permutation