結果

問題 No.225 文字列変更(medium)
ユーザー CsTarepanda
提出日時 2019-07-01 09:05:25
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 85 ms / 5,000 ms
コード長 887 bytes
コンパイル時間 200 ms
コンパイル使用メモリ 82,048 KB
実行使用メモリ 83,268 KB
最終ジャッジ日時 2024-07-08 05:55:19
合計ジャッジ時間 2,636 ms
ジャッジサーバーID
(参考情報)
judge4 / judge5
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 22
権限があれば一括ダウンロードができます

ソースコード

diff #

import sys
sys.setrecursionlimit(10**6)
slen, tlen = map(int, input().split())
s = input()
t = input()

# dp = [[None] * tlen for _ in range(slen)]
# def dfs(a=slen - 1, b=tlen - 1):
#     if a == b == -1:
#         return 0
#     if a == -1:
#         return b + 1
#     if b == -1:
#         return a + 1
#
#     if dp[a][b] is not None:
#         return dp[a][b]
#     r = min(
#         dfs(a - 1, b) + 1,
#         dfs(a, b - 1) + 1,
#         dfs(a - 1, b - 1) + (s[a] != t[b]),
#     )
#     dp[a][b] = r
#     return r
# print(dfs())

dp = [[0] * (tlen + 1) for _ in range(slen + 1)]
for b in range(tlen):
    dp[-1][b] = b + 1

for a in range(slen):
    dp[a][-1] = a + 1

for a in range(slen):
    for b in range(tlen):
        dp[a][b] = min(
            dp[a - 1][b] + 1,
            dp[a][b - 1] + 1,
            dp[a - 1][b - 1] + (s[a] != t[b]),
        )
print(dp[a][b])
0