結果
| 問題 | No.225 文字列変更(medium) |
| コンテスト | |
| ユーザー |
fmhr
|
| 提出日時 | 2015-06-12 23:00:30 |
| 言語 | Go (1.23.4) |
| 結果 |
RE
|
| 実行時間 | - |
| コード長 | 877 bytes |
| コンパイル時間 | 11,961 ms |
| コンパイル使用メモリ | 227,220 KB |
| 実行使用メモリ | 12,064 KB |
| 最終ジャッジ日時 | 2024-10-10 19:02:34 |
| 合計ジャッジ時間 | 11,519 ms |
|
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | RE * 22 |
ソースコード
package main
import (
"fmt"
"strings"
)
func main() {
var n, m int
var S, T string
fmt.Scan(&n, &m, &S, &T)
s:= strings.Split(S,"")
t:= strings.Split(T,"")
fmt.Println(lesvenshteinDistance(s, t))
}
func lesvenshteinDistance(str1 []string, str2 []string)int{
d := makeDoubleSliceInt(len(str1)+1, len(str2)+1)
for i1 :=0; i1<=len(str1);i1++{
d[i1][0]=i1
}
for i2:=0; i2<=len(str2);i2++{
d[0][i2] = i2
}
var cost int
for i:=1;i<=len(str1);i++{
for j:=1;j<=len(str2);j++{
if str1[i]==str2[j]{
cost=0
}else{
cost=1
}
d[i][j]=min(d[i-1][j]+1, min(d[i][j-1]+1, d[i-1][j-1]+cost))
}
}
//fmt.Println(d)
return d[len(str1)-1][len(str2)-1]
}
func makeDoubleSliceInt(y, x int) [][]int {
ss := make([][]int, y)
for i := range ss {
ss[i] = make([]int, x)
}
return ss
}
func min(a, b int) int {
if a < b {
a, b = b, a
}
return b
}
fmhr