https://jonathan-ck-chao.medium.com/the-blind-75-leetcode-series-longest-common-subsequence-22f838c8c051