解题思路:
例如:
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 人评分
点我有惊喜!你懂得!浏览:1515 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:701 |
数列 (C++代码)浏览:664 |
C语言程序设计教程(第三版)课后习题10.5 (C语言代码)浏览:731 |
WU-整除问题 (C++代码)浏览:612 |
WU-小九九 (C++代码)浏览:1684 |
【金明的预算方案】 (C++代码)浏览:843 |
WU-C语言程序设计教程(第三版)课后习题12.1 (C++代码)浏览:940 |
C语言程序设计教程(第三版)课后习题5.4 (C语言代码)浏览:562 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:1072 |