解题思路:
例如:
ABC
BCD
思维:
if 两个字符串相等
if 行或列为第0排
该空格为1
else
该空格为左上角的数加一
else
该空格为 上方与左方的最大值
填表:
0A | 1B | 2C | |
0B | 0 | 1 | 1 |
1C | |||
2D |
0A | 1B | 2C | |
0B | 0 | 1 | 1 |
1C | 0 | 1 | 2 |
2D |
0A | 1B | 2C | |
0B | 0 | 1 | 1 |
1C | 0 | 1 | 2 |
2D | 1 | 1 | 2 |
注意事项:
参考代码:
s1 = input() s2 = input() dp = [[0 for _ in range(len(s2))] for __ in range(len(s1))] # print(dp) for i in range(len(s1)): for j in range(len(s2)): if s1[i] == s2[j]: if i == 0 or j == 0: dp[i][j] = 1 else: dp[i][j] = dp[i-1][j-1] + 1 else: dp[i][j] = max(dp[i-1][j],dp[i][j-1]) print(dp[-1][-1])
0.0分
1 人评分
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:466 |
C语言程序设计教程(第三版)课后习题10.7 (C语言代码)浏览:998 |
打水问题 (C语言代码)浏览:1148 |
C语言程序设计教程(第三版)课后习题7.2 (C语言代码)浏览:686 |
字符逆序 (C语言代码)浏览:645 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:592 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:702 |
简单的a+b (C语言代码)浏览:574 |
简单的a+b (C语言代码)浏览:1024 |
C语言程序设计教程(第三版)课后习题11.5 (C语言代码)浏览:1496 |