CodeACM
HOT 100 · 多维动态规划 · LC 1143

最长公共子序列:ACM 模式刷题

按标准输入读取测试数据,输出结果后可在 CodeACM 在线运行和提交。

题目描述

给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。

一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。

· 例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。

两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。

输入格式

第一行输入 text1,第二行输入 text2。

输出格式

输出最长公共子序列长度。

数据范围

  • 1 ≤ text1.length,text2.length ≤ 1000
  • 字符串仅含小写字母

公开样例

样例 1

输入

abcde
ace

输出

3

公共子序列 ace 长度为 3。

样例 2

输入

abc
def

输出

0

两个字符串没有任何相同字符,因此最长公共子序列长度为 0。

练习建议

先根据输入输出格式写出可运行程序,再用公开样例检查结果;遇到边界情况时,补充自测用例后提交。