道德1984


私信TA

用户名:18285361435

访问量:5352

签 名:

等  级
排  名 1723
经  验 2685
参赛次数 0
文章发表 21
年  龄 0
在职情况 学生
学  校 gzsxy
专  业

  自我简介:

解题思路:
例如:

ABC

BCD

思维:

if 两个字符串相等 

    if 行或列为第0排

        该空格为1

    else

        该空格为左上角的数加一

else

    该空格为 上方与左方的最大值

填表:



0A
1B2C
0B0
11
1C


2D




0A
1B2C
0B0
11
1C01
2
2D




0A
1B2C
0B0
11
1C01
2
2D112

注意事项:

参考代码:

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 人评分

  评论区

  • «
  • »