結果

問題 No.225 文字列変更(medium)
ユーザー Common LispCommon Lisp
提出日時 2024-11-06 10:14:02
言語 Common Lisp
(sbcl 2.3.8)
結果
AC  
実行時間 39 ms / 5,000 ms
コード長 739 bytes
コンパイル時間 154 ms
コンパイル使用メモリ 43,708 KB
実行使用メモリ 46,716 KB
最終ジャッジ日時 2024-11-06 10:14:04
合計ジャッジ時間 1,774 ms
ジャッジサーバーID
(参考情報)
judge2 / judge5
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 23 ms
36,600 KB
testcase_01 AC 31 ms
42,664 KB
testcase_02 AC 11 ms
29,988 KB
testcase_03 AC 11 ms
29,888 KB
testcase_04 AC 11 ms
26,024 KB
testcase_05 AC 11 ms
25,900 KB
testcase_06 AC 11 ms
25,896 KB
testcase_07 AC 10 ms
26,020 KB
testcase_08 AC 11 ms
26,028 KB
testcase_09 AC 11 ms
30,144 KB
testcase_10 AC 11 ms
26,024 KB
testcase_11 AC 11 ms
27,984 KB
testcase_12 AC 37 ms
40,740 KB
testcase_13 AC 39 ms
42,664 KB
testcase_14 AC 39 ms
44,824 KB
testcase_15 AC 36 ms
40,612 KB
testcase_16 AC 38 ms
46,716 KB
testcase_17 AC 37 ms
42,652 KB
testcase_18 AC 37 ms
42,780 KB
testcase_19 AC 38 ms
42,660 KB
testcase_20 AC 36 ms
42,780 KB
testcase_21 AC 38 ms
46,588 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
; compiling file "/home/judge/data/code/Main.lisp" (written 06 NOV 2024 10:14:01 AM):

; wrote /home/judge/data/code/Main.fasl
; compilation finished in 0:00:00.024

ソースコード

diff #

(defun LevenshteinDistance (s1 s2)
  (let ((dp (make-array '(2048 2048)))
        (n (length s1))
        (m (length s2)))
    (dotimes (i (1+ n)) (setf (aref dp i 0) i))
    (dotimes (i (1+ m)) (setf (aref dp 0 i) i))
    (dotimes (i n)
      (dotimes (j m)
        (setf (aref dp (1+ i) (1+ j)) (1+ (min (aref dp i (1+ j)) (aref dp (1+ i) j)))
              (aref dp (1+ i) (1+ j)) (min (aref dp (1+ i) (1+ j)) (+ (aref dp i j) (if (char= (char s1 i) (char s2 j)) 0 1))))))
    (aref dp n m)))

(defun main (&rest argv)
  (declare (ignorable argv))
  (let* ((n (read))
         (m (read))
         (s1 (read-line))
         (s2 (read-line)))
    (declare (ignore n) (ignore m))
    (format t "~d~%" (LevenshteinDistance s1 s2))))

(main)
0