提出詳細
ソースコード
#!/usr/bin/python
# -*- coding: utf-8 -*-
def lcs(s1, s2):
dp = []
for s2_k in s2:
bgn_idx = 0
for i, cur_idx in enumerate(dp):
chr_idx = s1.find(s2_k, bgn_idx) + 1
if not chr_idx:
break
dp[i] = min(cur_idx, chr_idx)
bgn_idx = cur_idx
else:
chr_idx = s1.find(s2_k, bgn_idx) + 1
if chr_idx:
dp.append(chr_idx)
return len(dp)
def solve():
N, M = map(int, raw_input().rstrip().split(" "))
x = raw_input().rstrip().replace(" ", "")
y = raw_input().rstrip().replace(" ", "")
return N + M - lcs(x, y) * 2
if __name__ == "__main__":
T = int(input())
for i in range(T):
print("Case #" + str(i+1) + ":")
print solve()
提出情報
提出出力結果
テストケース情報