結果
| 問題 |
No.225 文字列変更(medium)
|
| コンテスト | |
| ユーザー |
tenten
|
| 提出日時 | 2020-12-23 09:38:38 |
| 言語 | Java (openjdk 23) |
| 結果 |
AC
|
| 実行時間 | 181 ms / 5,000 ms |
| コード長 | 941 bytes |
| コンパイル時間 | 1,942 ms |
| コンパイル使用メモリ | 77,796 KB |
| 実行使用メモリ | 48,488 KB |
| 最終ジャッジ日時 | 2024-09-21 16:17:24 |
| 合計ジャッジ時間 | 6,127 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 22 |
ソースコード
import java.util.*;
public class Main {
static char[] sArr;
static char[] tArr;
static int[][] dp;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
sArr = sc.next().toCharArray();
tArr = sc.next().toCharArray();
dp = new int[n][m];
for (int[] arr : dp) {
Arrays.fill(arr, -1);
}
System.out.println(dfw(n - 1, m - 1));
}
static int dfw(int s, int t) {
if (s < 0) {
return t + 1;
}
if (t < 0) {
return s + 1;
}
if (dp[s][t] < 0) {
if (sArr[s] == tArr[t]) {
dp[s][t] = dfw(s - 1, t - 1);
} else {
dp[s][t] = Math.min(Math.min(dfw(s - 1, t), dfw(s - 1, t - 1)), dfw(s, t - 1)) + 1;
}
}
return dp[s][t];
}
}
tenten